我正在解析 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 时,它会被大量修改。
puts Nokogiri::XML.parse(t)
给出:
<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 解析事物时,它会尝试修改它以使其变得有效,但我认为如果我将其解析为文档片段,puts Nokogiri::XML::DocumentFragment.parse(t)
情况会有所改善,但我得到了相同的结果。解析为 HTML 也会导致修改。
为什么 Nokogiri 会如此奇怪地解析这个问题,我能做些什么来获得所需的行为吗?或者,我应该提交错误报告吗?目前,我正在使用正则表达式(我知道......这是一个非常有限的情况),但我确信如果我可以使用 xPath 访问内容,我的代码会更容易阅读。