从div id中检索xpath内容

sha*_*dow 9 html xpath

如何检索article-field1中的文本?

<title>Testing</title>
  <link>http://example.org</link>
  <description>Description</description>
  <language>en-us</language>
  <lastBuildDate>Mon, 13 Feb 2012 00:00:00 +0000</lastBuildDate>

  <item>
    <title>Title Here</title>
    <link>http://example.org/2012/03/27/</link>
    <description><![CDATA[
        <div id="article-field1"><a href="http://example.org/test1">Test 1</a></div>
        <div id="article-field2">123</div>
    <pubDate>Tue, 2 Mar 2012 00:00:00 +0000</pubDate>
  </item>
Run Code Online (Sandbox Code Playgroud)

我试过用

//description/div[@id="article-field1"]/text()
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

谢谢

ing*_*ere 5

//description/div[@id="article-field1"]/a/text() 
Run Code Online (Sandbox Code Playgroud)

如果CDATA删除格式错误的标签,则会添加根元素并关闭相应的“描述”标签。这假设部分粘贴原始 XML 时出现错误,这就是给定表达式的所有意义。基本上,原始查询缺少该a元素。

这可以在http://www.xpathtester.com/进行验证。


Sea*_*kin 2

您无法通过调用普通 XPATH 处理器来完成此操作。

你有两个选择:

  1. 使用实现dyn:evaluate()函数的特定 XPATH 处理器(这引出了一个问题:您使用的是什么处理器和版本?);或者
  2. 使用两次调用。首先获取 /title/item/description 节点的文本值。第二个,在将第一个的结果加载为新的 XML 文档之后(需要几周时间将 xml 片段转换为正确的 xml 文档),是 div[@id="article-field1"] 。