在Java中读取和重写XML时,是否有一种系统的方法可以保留处理指令?



我想更新XML但保留原始处理指令,大多数时候它只是:

<?xml version="1.0" encoding="UTF-8"?>

但是,我找不到从com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.JAXPSAXParser(和其他XML阅读器(中提取该行的方法,或者如何自动将其进行写入。除了手动读取该行之外,还有其他方法吗,保留它,然后在刷新新XML之前先写入它?

它的专有名称是一个XML声明;它看起来像一个处理指令,但从技术上讲,它不是一个。

解析总是涉及解码文件(即将八位字节转换为字符(;理论认为,一旦完成,应用程序就不需要知道它们最初是如何编码的。同样,在序列化文件时,应用程序必须告诉序列化程序要使用哪种编码,然后序列化程序负责编写反映该编码的 XML 声明。

允许应用程序控制 XML 声明会破坏正确的体系结构分层,并有可能编写错误的 XML 声明。这部分内容属于解析器层,而不是应用程序层。

当然,在实践中,无论如何都可能获得与实际编码不匹配的 XML 声明,因为没有什么可以阻止您使用对 XML 一无所知的软件编写 XML 声明。人们这样做,他们创建破碎的内容,然后他们在StackOverflow上询问我们如何修复它。我不会鼓励你走这条路。

相关内容

最新更新