아래쪽에서 작업중인 비누 응답을 게시하고 있습니다.
나는 해시로 전체 일을집니다 <t:Body BodyType="HTML">
savon 응답에서 속성을 구문 분석하는 방법
이 response.body
을 수행에서 BodyType="HTML"
속성을 잡기 위해 필요로하고 있다는 점에서 BodyType="HTML"
의 흔적이 없다.
Doing response.doc.css("t|Body")
은 XML에 네임 스페이스 선언이 표시되지 않기 때문에 Undefined namespace prefix: //t:Body (Nokogiri::XML::XPath::SyntaxError)
오류를 생성합니다.
Doing response.doc.css("Body")
빈칸 반환.
BodyType
값을 검색하려면 어떻게해야합니까?
require 'savon'
require 'active_support/core_ext/hash/conversions'
require 'nokogiri'
@doc = Nokogiri::XML(File.open("tmp.xml"))
puts @doc.css("t|Body")
을 그리고 여기에 XML의 : 보안/개인 비누 요청을 코드를 게시 아무 문제가 없기 때문에
, 나는 플랫 파일에서 XML을 읽 몇 가지 기본적인 코드를 게시하고있다 :
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" MajorVersion="15" MinorVersion="1" MajorBuildNumber="629" MinorBuildNumber="8" Version="V2016_07_13"/>
</s:Header>
<s:Body>
<m:GetItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:GetItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:Message>
<t:ItemId Id="AAMkADE2NjQyMjVlLWNhY2UtNDNiMS04MzgxLWZiNzEyNzA0NDgwNQBGAAAAAACLt5QBAQ/GRYv+vEXkY5vLBwA6ksGFFTICTbjFW6e9FfRGAAAAAAEMAAA6ksGFFTICTbjFW6e9FfRGAAAu8FruAAA=" ChangeKey="CQAAABYAAAA6ksGFFTICTbjFW6e9FfRGAAAu9iR3"/>
<t:ParentFolderId Id="AAMkADE2NjQyMjVlLWNhY2UtNDNiMS04MzgxLWZiNzEyNzA0NDgwNQAuAAAAAACLt5QBAQ/GRYv+vEXkY5vLAQA6ksGFFTICTbjFW6e9FfRGAAAAAAEMAAA=" ChangeKey="AQAAAA=="/>
<t:ItemClass>IPM.Note</t:ItemClass>
<t:Subject>From test</t:Subject>
<t:Sensitivity>Normal</t:Sensitivity>
<t:Body BodyType="HTML">Hello world</t:Body>
</t:Message>
</m:Items>
</m:GetItemResponseMessage>
</m:ResponseMessages>
</m:GetItemResponse>
</s:Body>
</s:Envelope>
코드에 관해 묻는 경우 문제를 설명하는 데 필요한 절대적인 수준으로 입력을 줄이십시오. 다른 방법은 우리가 그것을하도록 강요하고 잠재적으로 유사한 솔루션을 찾는 다른 사람들을 혼란스럽게함으로써 우리의 시간을 낭비합니다. "[mcve]"및 [Stack Overflow 사용자에 대한 연구 노력의 정도는 얼마입니까?] (http://meta.stackoverflow.com/a/261593/128421)를 읽어보십시오. –