[英]Nokogiri::XML not creating xml document
好的,所以这里的最终目标是解析xml响应中的数据。 响应采用红宝石字符串的格式。 问题是从该字符串创建xml文件时出现错误(我知道response.body.to_s是xml的有效字符串的事实:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<CardTxn>
<authcode>123</authcode>
<card_scheme>Mastercard</card_scheme>
<country>United Kingdom</country>
</CardTxn>
<datacash_reference>XXXX</datacash_reference>
<merchantreference>XX0001</merchantreference>
<mode>TEST</mode>
<reason>ACCEPTED</reason>
<status>1</status>
<time>1286477267</time>
</Response>
在ruby方法内部,我尝试生成一个xml文件:
doc = Nokogiri::XML(response.body.to_s)
执行上述代码后,doc.to_s的输出为:
<?xml version="1.0"?>
为什么无法正确生成文件的任何想法?
这对我来说适用于1.9.2。 注意它是Nokogiri :: XML.parse()。
require 'nokogiri'
asdf = %q{<?xml version="1.0" encoding="UTF-8"?>
<Response>
<CardTxn>
<authcode>123</authcode>
<card_scheme>Mastercard</card_scheme>
<country>United Kingdom</country>
</CardTxn>
<datacash_reference>XXXX</datacash_reference>
<merchantreference>XX0001</merchantreference>
<mode>TEST</mode>
<reason>ACCEPTED</reason>
<status>1</status>
<time>1286477267</time>
</Response>
}
doc = Nokogiri::XML.parse(asdf)
print doc.to_s
这会将XML解析为Nokogiri XML文档,但不会创建文件。 doc.to_s仅显示打印后的样子。
要创建文件,请将“ print doc.to_s”替换为
File.open('xml.out', 'w') do |fo| fo.print doc.to_s end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.