Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
如何修复java中未关闭的标记XML_Java_Xml - Fatal编程技术网

如何修复java中未关闭的标记XML

如何修复java中未关闭的标记XML,java,xml,Java,Xml,我正在使用StaX解析java中的XML,但我的XML格式不正确,因此解析器将抛出错误。在XML中,存在未关闭的标记 例如: <person> <name>John</name> <age>21 ... ... </person> 约翰 21 ... ... 标记没有关闭的标记。所以我需要先修复XML 如何修复XML以关闭未关闭的标记 有图书馆可以这样做吗?我尝试了jtiy&HTMlCleaner,但仍然不知道如何

我正在使用StaX解析java中的XML,但我的XML格式不正确,因此解析器将抛出错误。在XML中,存在未关闭的标记

例如:

<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,这样他们就不必关闭那些讨厌的标签。