[英]Finding XML text values with spaces using Nokogiri
如何使用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"]' )
但是,當使用不帶空格的文本值時,類似的代碼也會執行。 有人可以幫忙嗎?
嘗試使用normalize-space()
函數,例如:
//*[normalize-space(.)="Fetus Summary"]
您的原始代碼可以與您共享的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
在Internet上或從文件中通過Internet?)能否將p my_xml_string
的結果p my_xml_string
到您的問題中,該問題將對任何復雜字符進行編碼?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.