我有第二个 xml
<Environment
Name="test"
xmlns="http://schemas.dmtf.org/ovf/environment/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:oe="http://schemas.dmtf.org/ovf/environment/1"
oe:id="123456789">
<PropertySection>
<Property oe:key="mykey" oe:value="test"/>
</PropertySection>
</Environment>
我正在使用 ruby 和 nokogiri 来解析文档。IE
file = File.open('/tmp/myxml.xml')
doc = Nokogiri::XML(file)
env = doc.at('Environment')
id = env['id']
printf("ID [%s]\n", id)
properties = env.at('PropertySection')
这有效并成功地从 xml 打印了 id。我现在想使用键“mykey”访问 Property 属性。我尝试了以下方法:
value = properties.at('Property[@key="mykey"]')['value']
printf("Value %s\n", value)
不幸的是,properties.at 方法返回一个 nil 对象。我尝试修改 xml 本身以从属性“key”中删除“oe”命名空间。重新运行我的脚本就可以了。
调用 .at() 时如何让 nokogiri 识别命名空间?