如果标记的内容包含&gt ;,您将如何解析Java中的xml?或<?

问题描述

当前,我正在使用XMLInputFactoryXMLEventReader来解析rss数据供稿中的XML。在描述中,它包含使用><的html标签。 Java将其作为实际的标签读取,并认为描述的末尾,因此将其截断并转到下一个元素。如何从解析中排除标签?

解决方法

我没有太多使用拉式解析器(XMLEventReader),但是我相信,与SAX解析器一样,它可以将文本节点报告为一系列Characters事件,而不是作为单个事件,由应用程序将它们串联起来。解析器最有可能选择拆分内容的位置是在实体边界处,以避免在扩展实体时进行字符数据的批量复制。

,

您可以将每个><标签临时替换为您知道的特定唯一标签。然后,进行解析,并在完成解析后再次用><标签替换它们,如以下代码中所示。

String original = "<container>&gt;This&lt; is a &gt;test&lt;</container>";
String newStr = original.replace("&gt;","_TMP_CHARACTER_G_").replace("&lt;","_TMP_CHARACTER_L_");
System.out.println(original + "\n" + newStr);
// Print <container>&gt;This&lt; is a &gt;test&lt;</container>
// and <container>_TMP_CHARACTER_G_This_TMP_CHARACTER_L_ is a _TMP_CHARACTER_G_test_TMP_CHARACTER_L_</container>
        
// [Do your parsing here]
        
String theTagYouWant = newStr;
String theConvertedTag = theTagYouWant.replace("_TMP_CHARACTER_G_","&gt;").replace("_TMP_CHARACTER_L_","&lt;");
System.out.println(theConvertedTag);
// Print the original String <container>&gt;This&lt; is a &gt;test&lt;</container>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...