Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup:从所有子元素获取文本_Java_Jsoup - Fatal编程技术网

Java Jsoup:从所有子元素获取文本

Java Jsoup:从所有子元素获取文本,java,jsoup,Java,Jsoup,在我试图解析的文档中,有以下元素: <span class="location accessible-contrast-color-location"> Seattle, WA 98104 <span style="font-size: smaller">(Downtown area)</span> </span> 我认为text()应该在父元素及其子元素中包含文本,但事实似乎并非如此 编辑: Elements jobEleme

在我试图解析的文档中,有以下元素:

<span class="location accessible-contrast-color-location">
    Seattle, WA 98104 
    <span style="font-size: smaller">(Downtown area)</span>
</span>
我认为
text()
应该在父元素及其子元素中包含文本,但事实似乎并非如此

编辑

Elements jobElements  =
        doc.select(".jobsearch-SerpJobCard.unifiedRow");
Element companyWrapper = jobElement.selectFirst(".sjcl");

解决方案1

您可以通过CSS类名获取元素文本。为此,必须使用
doc.select(“span.location”).text()

在本例中,有一个元素有一个子元素,当调用
text
方法时,将获取主节点(西雅图,WA 98104)及其子节点(市区)的文本

代码如下

   public static void main(String[] args) {


    String html = "<span class=\"location accessible-contrast-color-location\">" +
            "Seattle, WA 98104" +
            "<span style=\"font-size: smaller\">(Downtown area)</span>" +
            "</span>";


    Document doc = Jsoup.parse(html);
    String result = doc.select("span.location").text();
    System.out.println(result);


}

请注意,由于您需要两个文本,因此必须获取第一个
span
标记,因为它包含子标记,因此您可以从中获取父标记文本((西雅图,WA 98104))以及子标记文本(市区)。

您使用的是哪个Jsoup版本?我使用的是1.11.3,我的输出是“华盛顿州西雅图98104(市区)”
1.11.3
version,并添加了Maven。真奇怪!如何实例化公司说唱歌手?你能添加代码吗?@TDG是的,请参见编辑。它是一个
   public static void main(String[] args) {


    String html = "<span class=\"location accessible-contrast-color-location\">" +
            "Seattle, WA 98104" +
            "<span style=\"font-size: smaller\">(Downtown area)</span>" +
            "</span>";


    Document doc = Jsoup.parse(html);
    String result = doc.select("span.location").text();
    System.out.println(result);


}
   public static void main(String[] args) {


        String html= "<span class=\"location accessible-contrast-color-location\">" +
                "Seattle, WA 98104" +
                "<span style=\"font-size: smaller\">(Downtown area)</span>" +
                "</span>";


        Document doc = Jsoup.parse(html);
        String result= doc.select("span").first().text();
        System.out.println(result);
    }