我在Nokogiri有问题。这是我的XML:
<nfeProc>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe123" versao="3.10">
<ide>
<name>25</name>
</ide>
</infNFe>
</NFe>
</nfeProc>
我想找到ide
标签,但只能找到nfeProc
标签。
require 'nokogiri'
doc = Nokogiri::XML(File.open("sample.xml"))
doc.css('ide')
=> []
但是,当我向nfeProc
标签添加属性时,效果很好。
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe123" versao="3.10">
<ide>
<name>25</name>
</ide>
</infNFe>
</NFe>
</nfeProc>
require 'nokogiri'
doc = Nokogiri::XML(File.open("sample.xml"))
doc.css('ide')
=> #<Nokogiri::XML::Document:0x19226c4 name="document" children=[#<Nokogiri::XML::Ele...
如果没有xmlns
属性,我该怎么办?
答案 0 :(得分:0)
如果您不关心命名空间Nokogiri::XML::Document
,则为该命名空间提供一种称为remove_namespaces!
的方法。
doc = <<XML
<nfeProc>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe123" versao="3.10">
<ide>
<name>25</name>
</ide>
</infNFe>
</NFe>
</nfeProc>
XML
doc = Nokogiri::XML(doc)
doc.remove_namespaces!
doc.css('ide name').text
#=> "25"