本文共 869 字,大约阅读时间需要 2 分钟。
我正在用Java解析(格式不正确的)Apple Plist文件.
我的代码如下所示:
InputStream in = new FileInputStream( "foo" );
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLEventReader parser = factory.createXMLEventReader( in );
while (parser.hasNext()){
XMLEvent event = parser.nextEvent();
//code to navigate the nodes
}
我正在解析的部分看起来像这样:
foo123
barBoom & Shroom
现在我的问题是,包含与号的节点未按应有的方式进行解析,因为“与”号代表一个实体.
我该怎么做才能将节点的值作为完整的String而不是损坏的部分获得?
先感谢您.
解决方法:
您应该可以通过在XMLInputFactory上设置IS_COALESCING属性来解决您的问题(我也更喜欢XMLStreamReader而不是XMLEventReader,但是使用ymmv):
XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.TRUE);
InputStream in = // ...
xmlReader = factory.createXMLStreamReader(in, "UTF-8");
顺便说一下,据我所知,没有一个JDK解析器会处理“格式不正确”的XML而不会造成阻塞.实际上,您的XML格式正确:它使用实体而不是原始的&符号.
标签:plist,xml,java
来源: https://codeday.me/bug/20191210/2099920.html
转载地址:https://blog.csdn.net/weixin_28764823/article/details/114763847 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!