如何处理双重转义的xml文件

时间:2014-05-09 00:26:24

标签: java xml character-encoding escaping datafeed

我正在尝试处理从网上下载的产品数据Feed,下载完成如下:

URL website = new URL("http://some.products.com/format/xml/compression/gzip/");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("/opt/some/file.xml.gz");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();

当它保存在文件系统'上时,文件类型似乎是ansii。

当我用这样的流媒体处理器读取文件时:

GZIPInputStream gzis = new GZIPInputStream(new FileInputStream("/opt/some/file.xml.gz"));
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader eventReader = inputFactory.createXMLEventReader(gzis);
while (eventReader.hasNext()) {
    XMLEvent event = eventReader.nextEvent();
    ...
}

在此过程中,部分文本会被解码,因为它最终会像'一样

这是被转义的&符号未转义,但是那时似乎没有处理第二级转义。我无法锻炼我应该如何或在哪里处理它。我在阅读文件时是否应该尝试解码?或者我应该在解析xml后执行此操作?

编辑:我应该注意,这些字符出现在文本字段中,而不是网址。

0 个答案:

没有答案