如何修复java中未关闭的标记XML
我正在使用StaX解析java中的XML,但我的XML格式不正确,因此解析器将抛出错误。在XML中,存在未关闭的标记 例如:如何修复java中未关闭的标记XML,java,xml,Java,Xml,我正在使用StaX解析java中的XML,但我的XML格式不正确,因此解析器将抛出错误。在XML中,存在未关闭的标记 例如: <person> <name>John</name> <age>21 ... ... </person> 约翰 21 ... ... 标记没有关闭的标记。所以我需要先修复XML 如何修复XML以关闭未关闭的标记 有图书馆可以这样做吗?我尝试了jtiy&HTMlCleaner,但仍然不知道如何
<person>
<name>John</name>
<age>21
...
...
</person>
约翰
21
...
...
标记没有关闭的标记
。所以我需要先修复XML
如何修复XML以关闭未关闭的标记
有图书馆可以这样做吗?我尝试了jtiy&HTMlCleaner,但仍然不知道如何修复XML。我需要在java库,而不是独立的应用程序。
谢谢我认为没有现成的解决方案来修复XML。那是因为不可能知道
<person>
<name>John</name>
<age>21
<birthDate>...</birthDate>
...
</person>
约翰
21
...
...
就是
<person>
<name>John</name>
<age>21
<birthDate>...</birthDate>
</age>
...
</person>
约翰
21
...
...
或
约翰
21
...
...
我认为这种逻辑只能通过自定义字符串解析器来处理,您可以在其中说明如何转换数据。我认为没有现成的解决方案来修复XML。那是因为不可能知道
<person>
<name>John</name>
<age>21
<birthDate>...</birthDate>
...
</person>
约翰
21
...
...
就是
<person>
<name>John</name>
<age>21
<birthDate>...</birthDate>
</age>
...
</person>
约翰
21
...
...
或
约翰
21
...
...
我认为这种逻辑只能通过自定义字符串解析器来处理,您可以在其中说明如何转换数据。您可以尝试使用以下方法来进行验证,而不是修复XML:
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty(XMLInputFactory.IS_VALIDATING, false);
不必修复XML,您可以尝试使用以下方法来打开验证:
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
inputFactory.setProperty(XMLInputFactory.IS_VALIDATING, false);
找到生成XML的人,把他们打得毫无意义 XML的一个基本点是文档总是格式良好的。这是非常非常容易做到的,同样容易测试,它是其他一切的基石。如果有人在写代码,但他们甚至不能做到这一点,他们不配做一名程序员。说真的,他们应该改为烤汉堡或挖沟 编写代码来处理他们糟糕的代码并不是一个好的长期解决方案。它不能解决他们糟糕代码的问题
我明白这可能没有多大帮助。找到生成XML的人,并将他们打得毫无意义 XML的一个基本点是文档总是格式良好的。这是非常非常容易做到的,同样容易测试,它是其他一切的基石。如果有人在写代码,但他们甚至不能做到这一点,他们不配做一名程序员。说真的,他们应该改为烤汉堡或挖沟 编写代码来处理他们糟糕的代码并不是一个好的长期解决方案。它不能解决他们糟糕代码的问题
我很感激这可能没有多大帮助。那么,怎么做呢?最后,我读到HTMLCleaner/tidy可以为HTML格式而不是XML做这件事。我想知道,HTMLCleaner是如何做到这一点的,或者是如何修改itso,如何做到这一点的?最后,我读到HTMLCleaner/tidy可以为HTML格式而不是XML做这件事。我想知道,HTMLCleaner是如何做到这一点的,或者可能会修改itit的错误,并且无法继续解析。当我阅读javadoc时,IS_VALiDATING IS DTD validation“Valid”的意思与“格式良好”不同,它仍然是错误的,无法继续解析。当我阅读javadoc时,IS_VALiDATING IS DTD validation“Valid”的意思不同于“格式良好”否,当我检查时,我发现还有其他标记没有闭合标记。更正:是的,目前只有一个标记没有闭合标记。抱歉之前的回答,我和其他问题混淆了。Riizent对此有什么解决方案吗?急切地想知道是否有可用的工作环境!不,当我检查时,我发现还有其他标签没有闭合标签。更正:是的,现在,只有一个标签没有闭合标签。抱歉之前的回答,我和其他问题混淆了。Riizent对此有什么解决方案吗?急切地想知道是否有可用的工作环境!或者告诉他们切换到YAML,这样他们就不必关闭那些讨厌的标签,或者告诉他们切换到YAML,这样他们就不必关闭那些讨厌的标签。