我需要使用Nokogiri Gem从下面的CodigoImovel == 6124-2中获取值。
<?xml version="1.0" encoding="UTF-8"?>
<Carga xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Imoveis>
<Imovel>
<CodigoImovel>6124-2</CodigoImovel>
<TipoImovel>Apartamento</TipoImovel>
<SubTipoImovel>Apartamento Padrão</SubTipoImovel>
</Imovel>
<Imovel>
<CodigoImovel>86765</CodigoImovel>
<TipoImovel>Apartamento</TipoImovel>
<SubTipoImovel>Apartamento Padrão</SubTipoImovel>
<CategoriaImovel>Cobertura</CategoriaImovel>
</Imovel>
<Imovel>
<CodigoImovel>981768</CodigoImovel>
<TipoImovel>Casa</TipoImovel>
<SubTipoImovel>Casa de Condomínio</SubTipoImovel>
<CategoriaImovel>Térrea</CategoriaImovel>
</Imovel>
<Imovel>
<CodigoImovel>357468</CodigoImovel>
<TipoImovel>Casa</TipoImovel>
<SubTipoImovel>Casa de Condomínio</SubTipoImovel>
<CategoriaImovel>Térrea</CategoriaImovel>
</Imovel>
<Imovel>
<CodigoImovel>587168</CodigoImovel>
<TipoImovel>Comercial/Industrial</TipoImovel>
<SubTipoImovel>Conjunto</SubTipoImovel>
<CategoriaImovel>Comercial/Sala Padrão</CategoriaImovel>
</Imovel>
</Imoveis>
</Carga>我使用它来获取值xml.xpath("//Carga//Imoveis//ImovelCodigoImovel='"+re_code+"'"),但它显示未定义的局部变量或方法`re_code‘for #我感谢您的帮助。谢谢!
发布于 2018-06-14 15:44:42
我执行了以下操作,并可以自动获得所需的节点:
require 'nokogiri'
xml = Nokogiri::XML::Document.parse '<Carga
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Imoveis>
<Imovel>
<CodigoImovel>6124-2</CodigoImovel>
<TipoImovel>Apartamento</TipoImovel>
<SubTipoImovel>Apartamento Padrão</SubTipoImovel>
</Imovel>
<Imovel>
<CodigoImovel>86765</CodigoImovel>
<TipoImovel>Apartamento</TipoImovel>
<SubTipoImovel>Apartamento Padrão</SubTipoImovel>
<CategoriaImovel>Cobertura</CategoriaImovel>
</Imovel>
<Imovel>
<CodigoImovel>981768</CodigoImovel>
<TipoImovel>Casa</TipoImovel>
<SubTipoImovel>Casa de Condomínio</SubTipoImovel>
<CategoriaImovel>Térrea</CategoriaImovel>
</Imovel>
<Imovel>
<CodigoImovel>357468</CodigoImovel>
<TipoImovel>Casa</TipoImovel>
<SubTipoImovel>Casa de Condomínio</SubTipoImovel>
<CategoriaImovel>Térrea</CategoriaImovel>
</Imovel>
<Imovel>
<CodigoImovel>587168</CodigoImovel>
<TipoImovel>Comercial/Industrial</TipoImovel>
<SubTipoImovel>Conjunto</SubTipoImovel>
<CategoriaImovel>Comercial/Sala Padrão</CategoriaImovel>
</Imovel>
</Imoveis>
</Carga>' 注意解析后和结尾的单引号。然后我做了这个
re_code = '6124-2'
xml.xpath("//Carga//Imoveis//Imovel[CodigoImovel='"+re_code+"']")并返回第一个带有子节点的<Imovel>节点。虽然我不确定为什么你称它为re_code,但你的意思是在这里使用正则表达式吗?
https://stackoverflow.com/questions/50851500
复制相似问题