Nokogiri css 没有找到元素
Nokogiri css don’t find element
我在 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
属性我该怎么办?
如果您不关心命名空间,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"
我在 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
属性我该怎么办?
如果您不关心命名空间,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"