2013-12-15 84 views
0

我使用pugixml解析下面的XML:pugixml:選擇節點失敗

<td class="title"> 
    <div class="random" /> 
    <a href="link">Link1 </a> 
</td> 

<td class="title"> 
    <div class="random" /> 
    <a href="link">Link2 </a> 
</td> 

等等

我想每一個在TD類的A HREF'值=」標題「(這看起來不確定的次數),但只是第一個這樣的實例。

我使用下面的代碼,試圖獲取這些值:

pugi::xpath_node_set link_nodes = list_doc.select_nodes("//td[@class='title']"); 

    for (pugi::xpath_node_set::const_iterator it = link_nodes.begin();it != link_nodes.end();++it) 
    { 
     pugi::xpath_node single_link_node = *it; 

     std::cout << single_link_node.node().select_single_node("//a").node().attribute("href").value()<<std::endl; 


    } 

這似乎並沒有工作(它輸出的次數而是一個值,甚至不似乎出現內那個元素)。

謝謝。

回答

0

「// a」選擇文檔中的所有「a」個節點;你可能意味着「.a」選擇子樹中的所有「a」節點。

也可以使用一個XPath表達式而不是多個的:

//td[@class='title']//a[1] 

這選擇第一標籤中的每個 TD - 即[1]僅適用於//一個,而不是完整的表達。