如何使用xpath找到Fetus Summary
节点?
<container flag="SEPARATE">
<relationship>CONTAINS</relationship>
<concept>
<value>125008</value>
<scheme>
<designator>DCM</designator>
</scheme>
<meaning>Fetus Summary</meaning>
</concept>
</container>
这不起作用:
xml.xpath( '//*[.="Fetus Summary"]' )
但是,当使用没有空格的文本值时,类似的代码会这样做。有人可以帮忙吗?
答案 0 :(得分:1)
尝试使用normalize-space()
功能,例如:
//*[normalize-space(.)="Fetus Summary"]
答案 1 :(得分:0)
您的原始代码可以与您共享的XML一起使用:
require 'nokogiri'
doc = Nokogiri.XML '
<container flag="SEPARATE">
<relationship>CONTAINS</relationship>
<concept>
<value>125008</value>
<scheme>
<designator>DCM</designator>
</scheme>
<meaning>Fetus Summary</meaning>
</concept>
</container>
'
puts doc.at_xpath( '//*[.="Fetus Summary"]' )
#=> <meaning>Fetus Summary</meaning>
即使您在文档的开头有XML声明<?xml version="1.0" encoding="ISO-8859-1"?>
,这也有效。
我的猜测是你的文档有空格字符,看起来像空格或制表符但不是。你从哪里获得XML? (使用open-uri
或通过文件在互联网上播放?)是否可以将p my_xml_string
的结果发布到您的问题中,该问题会对任何复杂字符进行编码?