Java 从属性为jsoup的标记中获取文本

Java 从属性为jsoup的标记中获取文本,java,android,xml,jsoup,element,Java,Android,Xml,Jsoup,Element,我试图从带有name=“telefono”的标记“Data”中获取文本,但我无法解决它: <Placemark> <name>Iglesia </name> <description> Abril </description> <ExtendedData> <Data name='description'> <value>4444<

我试图从带有name=“telefono”的标记“Data”中获取文本,但我无法解决它:

<Placemark>
    <name>Iglesia </name>
    <description> Abril </description>

    <ExtendedData>
        <Data name='description'>
            <value>4444</Data>
        <Data name='phone'>
            <value>5555</value>
        </Data>
    </ExtendedData>
    <Point>
        <coordinates>-0.5191416,38.9848326,0.0</coordinates>
    </Point>
</Placemark>
我已经尝试了所有的可能性,以获得手机5555的价值

但我不知道,总是得到所有的数据电话和描述

System.out.println((i.select("ExtendedData").text()));
System.out.println((i.select("ExtendedData").select("Data").tagName("phone").text()));
System.out.println("(i.select("ExtendedData").tagName("phone").text()));

如果只想获取
5555
,则可以使用
text()
。如果可以有更多这样的元素,那么您可能需要添加更多关于其祖先/父代的数据,但例如,您发布了以下内容:

System.out.println(doc.select("data[name=phone]").text());
System.out.println((i.select(“ExtendedData”).select(“Data”).tagName(“phone”).text())

上述代码不起作用,因为
标记名
方法将更新所有选定
数据
元素的标记名。假设选择了以下元素:

<Data name='phone'><value>5555</value></Data>
相反,请尝试以下方法:

System.out.println( i.select("ExtendedData > Data[name=phone]").text() )
<phone name='phone'><value>5555</value></phone>
System.out.println( i.select("ExtendedData > Data[name=phone]").text() )