簡體   English   中英

使用Nokogiri查找帶空格的XML文本值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM