【发布时间】:2012-02-03 16:47:08
【问题描述】:
我正在编写一个 Ruby 脚本,它将解析和操作一些 XML 文件。我正在使用 Nokogiri 进行 XML 处理。
我遇到的问题是有几个这样的结构:
<USER_ELEMENT>
<NAME>ATTRIBUTE01</NAME>
<VALUE>XXX</VALUE>
</USER_ELEMENT>
我需要设置与特定<VALUE>ATTRIBUEnn</VALUE> 相同的<VALUE> 标签。我目前的方法是使用
xml.css('USER_ELEMENT').find { |node| node.at_css('NAME').text == 'ATTRIBUTEnn'}.at_css('VALUE').content = 'NEW_VALUE'
但它看起来很丑。
我想知道哪种方式可以更简洁地处理这种情况?
【问题讨论】:
-
必须是 CSS 吗? XPath 可能是更好的选择。
-
正如我已经在其他答案的主题中回答的那样,选择 CSS 是为了保持一致性。整个应用程序依赖于 CSS 选择器,所以我宁愿坚持下去。
标签: css ruby xml nokogiri siblings