首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与frameset和id属性有关的jsoup解析问题

与frameset和id属性有关的jsoup解析问题
EN

Stack Overflow用户
提问于 2014-06-02 10:54:42
回答 1查看 1.2K关注 0票数 0

我有这样的源代码:

代码语言:javascript
复制
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>SCHOOL-100</title> 
    </head>  
    <frameset rows="111, 1*" border=0>    
        <frame name=top src="top.cgi" marginwidth=0 marginheight=0 noresize scrolling="no"> 
        <frameset cols="200, 1*">     
            <frame name=left namo_target_frame=right src="left.cgi" scrolling=yes>     
            <frame name=right namo_target_frame=_self src="LTE_info.cgi">   
        </frameset>         
        <noframes>         
            <body bgcolor=white text=black link=blue vlink=purple alink=red>  
                <input type=hidden id=age value="12" >  
                <input type=hidden id=class value="9" > 
                <p> </p>    
            </body>      
        </noframes>     
    </frameset>         
</html> 

我从网址上提取数据。我试过:

代码语言:javascript
复制
Document doc = Jsoup.connect("mobile.testmifi/cgi-bin/frame_main.cgi").get();
Elements media = doc.select("noframes");
for (Element src : media) {
    //System.out.println("media source is ---- " + src.text());
}

我面临的问题是我无法在noframe节点之后到达。我想获取id=ageid=class的值。所有这些值都以字符串的形式出现,而不是作为节点。如果我做了getElementsbyAttribute("id"),它显示为null。

我需要使用汤汁获取年龄/类( in )的值,请帮助任何人,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-02 14:30:35

这里的问题是noframes不被认为是一个标准标记,里面的html将被视为它的值。如果您只想获得年龄和类的值,可以将noframes标记的值解析为一个主体片段,然后读取。例如:

代码语言:javascript
复制
import java.io.File;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


public class JsoupParser4 {

    public static void main(String[] args) {
        try {
            Document doc = Jsoup.parse(new File("mob.html"), "UTF-8");
            Document noFramesDoc = Jsoup.parseBodyFragment(doc.select("noframes").text());
            System.out.println("Age = " + noFramesDoc.select("input[id=age]").attr("value"));
            System.out.println("Class = " + noFramesDoc.select("input[id=class]").attr("value"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

mob.html文件包含问题中的html标记代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23992845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档