nokogiri으로 간단한 XML 데이터를 구문 분석하려고합니다. 이 내 XML입니다 :Nokogiri : NoMethodError (nil 클래스에 대해 정의되지 않은 메소드 'inner_html')
POST /.... HTTP/1.1
Host: ....
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://...."
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="...." xmlns:xsd="...." xmlns:soap="....">
<soap:Body>
<WS_QueryOnSec xmlns="......">
<type>string</type>
<ID>string</ID>
</WS_QueryOnSec>
</soap:Body>
</soap:Envelope>
이 내 simle 요청입니다 :
require "nokogiri"
@doc = Nokogiri::XML(request.body.read)
@something = @doc.at('type').inner_html
그러나 노코 기리가 입력하거나 ID 노드를 찾을 수 없습니다. 나는이에 데이터를 변경하면 모든 일이 잘 작동 :
<soap:Body>
<type>string</type>
<ID>string</ID>
</soap:Body>
문제가 데이터와의 xmlns 또는 다른 속성을 고개를 끄덕 위의 원시 텍스트 보인다! 이 문제를 해결하려면 무엇을 권하고 싶습니까?
"XML"은 XML이 아닙니다. XML을 포함하는 텍스트입니다. 헤더 정보를 빈 줄까지 제거하십시오. XML 스펙을 읽고 XML 작성에 대한 자습서를 읽는 것이 도움이 될 것이라고 생각합니다. –
@ The Tin Man 그러나 태그에 포함 된 속성은 어떻게됩니까? 텍스트를 제거하면 여전히 동일합니다! 속성을 포함하는 전체 태그를 제거 할 때까지! 고맙습니다. –