1

我有一个如下所示的 xml 文档。我试图选择一个带有特定值的标题节点说"![CDATA[ 1234 ]]"。该Title节点可以在任何Type节点中。我正在使用这个 xpath 查询

/Results/ResultSet/Type[Title="![CDATA[ 1234 ]]"]

但没有选择任何东西。有人可以帮忙吗?

<Results>
    <Info>...</Info>
    <ResultSet num="4">

     <Type type="A">

      <Title>
      <![CDATA[ 1234 ]]>
      </Title>

      <Description>
      <![CDATA[ 1234 ]]>
      </Description>

      <Domain>
      <![CDATA[1234 ]]>
      </Domain>

      <Target>
      <![CDATA[]]>
      </Target>

     </Type>

    <Type type="A">

    <Title>
    <![CDATA[ abcdef ]]>
    </Title>

    <Description>
    <![CDATA[abcdef]]>
    </Description>

    <Domain>
    <![CDATA[abcdef]]>
    </Domain>

    <Target>
    <![CDATA[abcdef]]>
    </Target>

    </Type>

编辑:包括我正在使用的红宝石代码

       doc = Nokogiri::HTML(html)
       Element = doc.xpath('/Results/ResultSet/Type/Title[text()=" 1234 "]')
    if Element.empty?()
          puts "not there "
    else
       Element.each do |node|
       puts  "Found Title: #{node.text}" 
       end
    end
    end
4

1 回答 1

2

XPath 错误:

用这个:

/Results/ResultSet/Type/Title[text()=" 1234 "]

根据为 XML 发布的链接 OP,这里是有效的 XPath:

/QuigoResults/ResultSet/Listing/Title[text()=" location in DYNAMICREGION "]
于 2012-07-03T16:11:12.100 回答