我想解析下面的XML來獲取電子郵件地址。我可以得到messageid,但我認爲有一個:在前面讓我使用xpath。不知道如何提取電子郵件地址。我想試圖解析與nokogiri和紅寶石xml
xml.xpath( 「// S:身體/發現/請求/ EmailAddress的」)。children.text.to_s
和
xml.xpath(「// S:身體/Discover/EmailAddress").children.text.to_s
如果我做xml.xpath(「// s:Body」)。children.text.to_s我得到的電子郵件和所有的新行和標籤的版本但我不想解析電子郵件,如果我不必。
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Header>
<a:Action s:mustUnderstand="1">test url</a:Action>
<a:MessageID>mid</a:MessageID>
<a:ReplyTo>
<a:Address>test url</a:Address>
</a:ReplyTo>
<a:To s:mustUnderstand="1">test url</a:To>
</s:Header>
<s:Body>
<Discover xmlns="test url">
<request xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<EmailAddress>[email protected]</EmailAddress>
<RequestVersion>1.0</RequestVersion>
</request>
</Discover>
</s:Body>
</s:Envelope>
https://amolnpujari.wordpress.com/2012/03/31/reading_huge_xml-rb我發現比引入nokogiri快牛的5倍,在牛,因此這裏一個例子 - https://gist.github.com/amolpujari/5966431,搜索任何元素並以散列形式獲取它 –