XPath选择innertext

pet*_*ter 5 html c# xpath text

我有这个HTML/XML:

\t\t\t\t\t    \r\n\t\t
<a href="/test.aspx">
  <span class=test>
    <b>blabla</b>
  </span>
</a>
<br/>
this is the text I want
<br/>
<span class="test">
  <b>code: 123</b>
</span>
<br/>
<span class="test"></span>
\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t
Run Code Online (Sandbox Code Playgroud)

在C#4中,我使用HtmlAgilityPack lib选择带有XPath的Node并获取InnerText属性.这将获得节点内的所有文本.我怎样才能得到"这是我想要的文字"这个文字?

/text() 只返回 \t\t\t\t\t \r\n\t\t

Chr*_*lls 11

/div/text()
Run Code Online (Sandbox Code Playgroud)

从给出的示例中,这个XPath将获得div元素下面的所有文本节点,在本例中为test2.

如果您可以详细说明问题,我们可以更好地为您提供帮助.Div包含3个子元素:span元素,文本节点和ab元素.span和b每个都有一个文本节点子节点.使用XPath,您可以只选择元素(/ div/*),仅选择文本节点(/ div/text())或所有节点类型(/ div/node()).

编辑:/ text()只返回根级文本节点.在这种情况下,我希望它返回一个包含3个文本节点的节点列表:

\t\t\t\t\t    \r\n\t\t 
this is the text I want
\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t
Run Code Online (Sandbox Code Playgroud)

您是否只在结果节点列表中选择第一个节点? 有一些结构良好的问题,比如你<br>应该这样<br/>.

  • 这个答案如何与问题相关? (2认同)