2

您好我正在尝试使用 REXML 解析 XML 文件……当我的 XML 文件中有非法字符时……此时它的 jus 失败了。

那么有什么方法可以替换或删除这些字符吗?

无法解析,错误 Illegal character '&' in raw string REXML parsing

<head> Negative test for underlying BJSPRICEENG N4&N5
</head>


doc = REXML::Document.new(File.open(file_name,"r:iso-8859-1:utf-8"))

testfile.elements["head"].text





doc = REXML::Document.new(content)
dir_path = doc.elements["TestBed/TestDir"].attributes["path"].to_s
    doc.elements.each("TestBed/TestDir") do |directory|
      directory.elements.each("file") do |testfile|

t= testfile.elements["head"].text

end
end
end




<file name="toptstocksensbybjs.m">
      <MCheck></MCheck>
      <TestExtension></TestExtension>
      <TestType></TestType>


<fcn name="lvlTwoDocExample" linenumber="20">
 <head> P1><&
</head>

 </fcn>

   </file>
4

1 回答 1

9

对于您的情况,要删除非法&字符,您可以尝试:

content = File.open(file_name,"r:iso-8859-1:utf-8").read
content.gsub!(/&(?!(?:amp|lt|gt|quot|apos);)/, '&amp;')
doc = REXML::Document.new(content)

但是,对于那些其他非法字符,尤其是那些不成对<的 , >,'",它会困难得多。

于 2013-06-21T14:30:43.537 回答