Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何阻止Nokogiri在解析时更改XML_Ruby_Xml_Nokogiri - Fatal编程技术网

Ruby 如何阻止Nokogiri在解析时更改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

我正在解析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 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"/&gt;
    <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"/&gt;
  </SHYPO>
</RECOGOUT>