2016-04-26 22 views
0

私は鋸山を使用してそれを解析しようとしていますRubyのXML解析

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
    <SearchSecretsResponse xmlns="urn:thesecretserver.com"> 
     <SearchSecretsResult> 
     <Errors/> 
     <SecretSummaries> 
      <SecretSummary> 
      <SecretId>86</SecretId> 
      <SecretName>hostName\root</SecretName> 
      <SecretTypeName>Unix Root Account (SSH)</SecretTypeName> 
      </SecretSummary> 
     </SecretSummaries> 
     </SearchSecretsResult> 
    </SearchSecretsResponse> 
    </soap:Body> 
</soap:Envelope> 

のようなサンプルXML文書を持っています。私のコードは

doc = Nokogiri::XML.parse(xml) 
puts doc.xpath('//SecretSummary') 

ですが、これは何も印刷されません。私は間違って何をしていますか?

答えて

2

名前空間に別名を付ける必要があります。

Nokogiri::XML(xml).xpath('//foo:SecretSummary', 'foo' => 'urn:thesecretserver.com') 
+0

素晴らしい、おかげで多くを削除することができます。 – user1191140

1

また、名前空間

doc.remove_namespaces!