我需要从DOM中删除处理指令。我加载了几个文件,合并并保存。但问题是,结果如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<frag>
Jó foxim és don Quijote húszwattos lámpánál ülve egy pár bűvös cipőt készít.
</frag>
<?xml version="1.0" encoding="iso-8859-2" standalone="no"?>
<frag>
Jó foxim és don Quijote húszwattos lámpánál ülve egy pár bűvös cipőt készít.
</frag>
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<frag>
Jó foxim és don Quijote húszwattos lámpánál ülve egy pár bűvös cipőt készít.
</frag>
我还没有找到<?xml ...?>
进程指令可以从DOM中删除或在保存生成的DOM时被忽略的方式。我正在使用Java 6和默认解析器。
答案 0 :(得分:3)
没有用于删除处理指令的方法。
您的合并过程已中断。我敢打赌,你正在阅读片段文件,只需将字符串连接在一起就可以创建这个例子。
正确的方法是解析每个片段并将要添加的元素添加到最终的DOM中,然后输出。
即使您删除了处理指令,您发布的内容也是无效的XML。我看不到根标签,你必须只有一个。
答案 1 :(得分:1)
您可以使用SAX API删除处理说明 - 例如XMLStreamReader。您可以使用FilteredReader
和XMLInputFactory
创建StreamFilter
。
常量XMLStreamConstants.PROCESSING_INSTRUCTION
可以帮助您的过滤器识别处理说明并将其保留。
StAX也绝对可以实现类似。
无论技术可行性如何,合并确实看起来像duffymo所暗示的那样。