【发布时间】:2012-07-31 10:08:50
【问题描述】:
我用谷歌搜索、搜索和阅读,但一直找不到答案。
我的 XML 文件看起来有点像这样:
<Patient PID="5" Disease="Flu" FavoriteBird="Norwegian Blue"/>
<Patient PID="33" Disease="Thripshaw's Disease" FavoriteBird="Dodo">
<Contact Hospitalized="2013 05 30"/>
</Patient>
我想匿名化每位患者最喜欢的鸟类。也就是说,产生如下所示的输出:
<Patient PID="5" Disease="Flu"/>
<Patient PID="33" Disease="Thripshaw's Disease">
<Contact Hospitalized="2013 05 30"/>
</Patient>
这一切都很顺利,除了我只能处理最后一种类型的患者标签——即当元素不是自动关闭时。
我的“endElement”方法看起来像
out.write(qName + "/n>")
并且永远不会为第一种类型的 Patient 标签调用。
我该怎么办?如果有办法找出标签是否自动关闭,我可以轻松修复它。
PS:我必须转换大小高达数百兆字节的文件。在提出替代解决方案时请牢记这一点。
【问题讨论】:
-
您是手动写出 XML 吗?这是一个很大的禁忌。您应该改用 javax.xml.transform API。
-
这并不能很好地回答您的问题,但我强烈建议您使用 jdom 之类的框架来处理此类事情。它消除了很多痛苦。
-
发布您用于读取/写入 xml 的代码,以便我们提供帮助。
-
我尝试编写一个简单的示例,因为我的代码非常庞大。我可能应该从一开始就使用不同的方法。对不起。
-
但是如果有人知道原始问题的简单答案,我认为其他人可能仍然会感兴趣,所以我暂时保留这个问题。