ruby - Nokogiri:如何通过其子标签的内容之一获取 xml 类

标签 ruby xml search xpath nokogiri

例如,我有这个 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/

相关文章:

ruby-on-rails - rails 3.2.6; rake 0.9.2.2;数据库:migrate aborted

java - Android 抽屉式导航错误

java - 二进制搜索算法的问题

search - 如何为一对多关系配置 Solr

javascript - 字符串中的短语搜索,制作正确的正则表达式

ruby - 使用正则表达式返回字符串的前缀,其中剥离的字符串有时包含 '/'

ruby-on-rails - rails 按标题排序博客文章

ruby - 如何使用不同的布局呈现所有 Jekyll 页面?

java - Android 自定义 ListViewItem 布局

xml - 如何在 Open XML SDK 2.5 for excel 中设置来源公司(作者)?