XPATH:如何获取子节点

时间:2013-08-05 08:18:53

标签: c# asp.net xpath html-agility-pack

我有以下html

      <ul class="enh-toggle">
         <li>
        <a href="#design">Design<sup>1</sup><span class="accordion"></span></a>
        <ul id="design">
               <li>
                   <strong>Dimensions</strong>
                    <ul><li>length:12.3cm</li></ul>
               </li>
            </ul>
          </li>
       </ul>

我使用以下代码来获取ul [id ='design']

HTMLNode node = doc.DocumentNode.SelectSingleNode("//ul[@class='enh-toggle']//ul[@id='design']");

这只是完美的工作......

现在我的问题是我如何获得强大的标签文字。我使用以下代码,但它不起作用

string text = node.SelectSingleNode("/li/strong").InnerText;   

3 个答案:

答案 0 :(得分:2)

“li / strong”答案的变化:

string text = node.SelectSingleNode("./li/strong").InnerText;   

答案 1 :(得分:1)

XPath中的单个斜杠是文档的根。您只想选择直接后代,因此您无需提供上下文:

string text = node.SelectSingleNode("li/strong").InnerText;   

答案 2 :(得分:1)

我认为应该只是:

string text = node.SelectSingleNode("li/strong").InnerText;

..没有前导/