生成的XML文件格式错误,即添加了不需要的封闭标记(导致格式错误的XML文件)。我通过在shell的帮助下删除额外添加的封闭标记,成功解决了这个问题。 java文件中的命令如下:
int NoofTags=Integer.parseInt(CommandExecution("grep -c \"</person>\" " + file + "").toString().trim());
if(NoofTags > 1)
{
CommandExecution("sed -i \'/^<\\/person>$/d\' " + file + "");//Remove all </person> tags in the XML file
CommandExecution("echo \'</person>\' "+ " >> " + file + "");//Adding </person> tag at end of the XMLfile
}
这里“文件”是一个XML文件。“person”是根元素。这里发现多个</person>
封闭标签被随机添加到XML文件中间,这是不需要的(导致格式错误) XML)。所以我通过使用sed
命令一次删除了所有已关闭的标签,并在文件的末尾添加了一个封闭的标签,以关闭根元素“person”。现在问题已解决。
但我无法使用Java XML解析技术解决这个问题。
任何人都可以借助java XML解析技术帮助我解决这个问题(例如:DOM解析器)吗?
答案 0 :(得分:0)
在java中解析XML时,你会发现绝大多数API(我遇到的所有API)如果发现输入不是“格式良好”,就会抛出异常。这是因为如果输入不是“格式良好”,那么从技术上讲,它不是XML。
解析XML时,最好拒绝任何格式不正确的内容。
解决错误/问题的原因,而不是修复症状也是一种很好的做法。
我的建议是修复XML的生成。