为什么我无法解析 XML 格式



我在我的Rails应用程序中使用teamforge,效果很好。

现在我想测试它,所以我正在使用savon_spec宝石。我正在将 Soap XML 作为固定装置提供。

我没有获得直接从 soap UI 工具获取的 XML 解析 XML 的所需行为,但是当我删除格式时,它就像一个魅力。

我不确定为什么它不起作用。在内部,teamforge和savon使用Nokogiri。

我将把两个XML都放进去:

  • 没有格式的 XML 工作
  • 直接从 Soap UI 获取的 XML

如果我删除所有空格并将其转换为一行,它会按预期工作。

我最初努力寻找 XML 不起作用的原因,然后我能够缩小到如果我放置无格式的 XML,它可以工作。

为什么 Soap UI 格式 XML 会中断解析?

  1. 我只是想看看实际损坏的内容,所以我开始一步一步地引入缩进。这是最终起作用的格式 - xml。

  2. 然后是下一行缩进的下一个格式。这是破碎的 - 打破格式

找出原因。

答案是 nokogiri xpath nokogiri-1.6.5/lib/nokogiri/xml/node.rb 返回一个具有节点数组的 NodeSet。这在创建数组时,它会遵循每个换行符并将其视为有效节点并将其设置为 文本节点 .所以发生的事情是 Teamforge Ruby Gem 没有预料到或处理 XML 中可能存在新行的情况,因此 XML 的解析和转换为对象中断,因为对象中没有文本这样的属性。

像我这样的人也面临类似的问题

相关内容

  • 没有找到相关文章

最新更新