Ruby 如何阻止Nokogiri在解析时更改XML
我正在解析Julius的XML输出:Ruby 如何阻止Nokogiri在解析时更改XML,ruby,xml,nokogiri,Ruby,Xml,Nokogiri,我正在解析Julius的XML输出: <RECOGOUT SOURCEID="68"> <SHYPO RANK="1" SCORE="223.648865"> <WHYPO WORD="" CLASSID="<s>" PHONE="silB" CM="0.972"/> <WHYPO WORD="THE" CLASSID="THE" PHONE="dh iy" CM="0.640"/> <WHYPO WO
<RECOGOUT SOURCEID="68">
<SHYPO RANK="1" SCORE="223.648865">
<WHYPO WORD="" CLASSID="<s>" PHONE="silB" CM="0.972"/>
<WHYPO WORD="THE" CLASSID="THE" PHONE="dh iy" CM="0.640"/>
<WHYPO WORD="ABOUT" CLASSID="ABOUT" PHONE="ah b aw t" CM="0.167"/>
<WHYPO WORD="" CLASSID="</s>" PHONE="silE" CM="1.000"/>
</SHYPO>
</RECOGOUT>
我知道,当Nokogiri解析东西时,它会尝试修改它,使它变得有效,但我认为如果我将它解析为文档片段,将Nokogiri::XML::DocumentFragment.parse(t)
东西会改进,但我得到了相同的结果。作为HTML解析也会导致修改
为什么Nokogiri会如此奇怪地解析它?我能做些什么来获得想要的行为吗?或者,我应该提交错误报告吗?目前,我使用的是正则表达式(我知道……这是一个非常有限的例子),但我相信如果我可以使用xPath访问东西,我的代码会更容易阅读。XML无效的原因是
和
被用作属性。一旦它们被替换,Nokogiri将正确解析这些值。感谢@Wes的帮助
<RECOGOUT SOURCEID="68">
<SHYPO RANK="1" SCORE="223.648865">
<WHYPO WORD="" CLASSID=""/><s>" PHONE="silB" CM="0.972"/>
<WHYPO WORD="THE" CLASSID="THE" PHONE="dh iy" CM="0.640"/>
<WHYPO WORD="ABOUT" CLASSID="ABOUT" PHONE="ah b aw t" CM="0.167"/>
<WHYPO WORD="" CLASSID=""/></s>" PHONE="silE" CM="1.000"/>
</SHYPO>
</RECOGOUT>