2011-10-26 5 views
2

要素 "a"と "span"の値を取得しようとしています。 HTMLCleanerの使用。ここ HTMLcleanerで要素の値を取得する方法

<div class="info"> 
    <p class="name"> 
    <a href="http://www.zxdv.com/level/1/film/616/sr/1/">Tron</a> 
    <span class="year">2001</span> 
    </p> 
</div> 

はコードです:

TagNode linkElements[] = rootNode.getElementsByName("div", true); 
int s=0; 
for (int i = 0; linkElements != null && i < linkElements.length; i++) 
{ 
    if (linkElements[i].getAttributes().toString().equals("{class=info}")) { 
     TagNode linkElements2[] = linkElements[i].getElementsByName("p", true); 
     for (int i2 = 0; linkElements2 != null && i2 < linkElements2.length; i2++) 
     { 
      TagNode linkElements3[] = linkElements2[i2].getElementsByName("a", true); 
      TagNode linkElements4[] = linkElements2[i2].getElementsByName("span", true); 
      for (int i3 = 0; linkElements3 != null && i3 < linkElements3.length; i3++) 
      { 
       if (s <= 20) { 
        String currentlink = linkElements3[i3].getText().toString(); 
        String currentlink2 = linkElements4[i3].getText().toString(); 
        slink[s] = currentlink+"\n"+currentlink2; 
        s++; 
       } 
      } 
     } 
    } 
} 

私は理解して最初の「DIV」要素を取り、その後、私は「」と「スパン」の要素をタリン彼の子「P」の要素が、値が返されます 私は間違いを犯してください。おかげ

答えて

4

ではなく

TagNode root = htmlCleaner.clean(url); 
// Xpath to 'a' 
Object[] foundList = root.evaluateXPath("//div/p[@class='name']/a"); 
if(foundList == null || foundList.length < 1) { 
    return; 
} 

TagNode aNode = (TagNode)foundList[0]; 
String aNodeTextContent = aNode.getText(); 

// Xpath to 'span' 
foundList = root.evaluateXPath("//div/p[@class='name']/span"); 
if(foundList == null || foundList.length < 1) { 
    return; 
} 

TagNode spanNode = (TagNode)foundList[0]; 
String spanNodeTextContent = spanNode.getText(); 
+0

おかげで多くのXPathを使用して作業を軽減します!できます! –

関連する問題