如何解决如果标记的内容包含&gt ;,您将如何解析Java中的xml?或<?
当前,我正在使用XMLInputFactory
和XMLEventReader
来解析rss数据供稿中的XML。在描述中,它包含使用>
和<
的html标签。 Java将其作为实际的标签读取,并认为描述的末尾,因此将其截断并转到下一个元素。如何从解析中排除标签?
解决方法
我没有太多使用拉式解析器(XMLEventReader
),但是我相信,与SAX解析器一样,它可以将文本节点报告为一系列Characters
事件,而不是作为单个事件,由应用程序将它们串联起来。解析器最有可能选择拆分内容的位置是在实体边界处,以避免在扩展实体时进行字符数据的批量复制。
您可以将每个>
和<
标签临时替换为您知道的特定唯一标签。然后,进行解析,并在完成解析后再次用>
和<
标签替换它们,如以下代码中所示。
String original = "<container>>This< is a >test<</container>";
String newStr = original.replace(">","_TMP_CHARACTER_G_").replace("<","_TMP_CHARACTER_L_");
System.out.println(original + "\n" + newStr);
// Print <container>>This< is a >test<</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_",">").replace("_TMP_CHARACTER_L_","<");
System.out.println(theConvertedTag);
// Print the original String <container>>This< is a >test<</container>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。