例如,我有这个 XML 对象:
<PARENT>
<ROW>
<ID>1</ID>
<INFO>1234</INFO>
</ROW>
<ROW>
<ID>2</ID>
<INFO>4321</INFO>
</ROW>
<ROW>
<ID>3</ID>
<INFO>4444</INFO>
</ROW>
</PARENT>
在一个名为 rows
的变量中。
xml = Nokogiri::XML(rows)
我需要的是通过 ID 标签内的 ID 搜索来检索整个 ROW 子标签。
最佳答案
s = <<-EOS
<PARENT>
<ROW>
<ID>1</ID>
<INFO>1234</INFO>
</ROW>
<ROW>
<ID>2</ID>
<INFO>4321</INFO>
</ROW>
<ROW>
<ID>3</ID>
<INFO>4444</INFO>
</ROW>
</PARENT>
EOS
doc = Nokogiri::XML(s)
element = doc.xpath("//ROW[ID='2']")
p element.to_s
# => "<ROW>\n <ID>2</ID>\n <INFO>4321</INFO>\n </ROW>"
如果您想将结果细化到一个特定的节点,请将其添加到末尾。
s = <<-EOS
<PARENT>
<ROW>
<ID>1</ID>
<INFO>1234</INFO>
</ROW>
<ROW>
<ID>2</ID>
<INFO>4321</INFO>
</ROW>
<ROW>
<ID>3</ID>
<INFO>4444</INFO>
</ROW>
</PARENT>
EOS
doc = Nokogiri::XML(s)
element = doc.xpath("//ROW[ID='2']/INFO")
p element.to_s
# => "<INFO>4321</INFO>"
关于ruby - Nokogiri:如何通过其子标签的内容之一获取 xml 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6108782/