2016-04-10 11 views
1

イムとタグからテキストが名前=「TELEFONO」でタグから「データ」テキストを取得GETしようが、私はそれを解決することはできません。属性jsoup

<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> 

私はその選択「を」持っていますすべての目印は:

for(org.jsoup.nodes.Element i : e.select("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())); 

答えて

2

だけ5555、あなたは<Data name='phone'>text()を使用することができます。そのような要素のよりができるなら、あなたはその祖先/親についてのより多くのデータを追加する必要があるかもしれませんが、たとえば、あなたは、これは十分なはずです投稿:

System.out.println(doc.select("data[name=phone]").text()); 
1

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

tagNameメソッドは、選択したすべてのData要素のタグ名を更新するため、上記のコードは機能しません。のは、以下の要素が選択されているとしましょう:

System.out.println(i.select("ExtendedData > Data[name=phone]").text()) 
:代わりにこれを試して

<phone name='phone'><value>5555</value></phone> 

tagNameメソッドを呼び出す

<Data name='phone'><value>5555</value></Data> 

はにそれを回すだろう