我有一个包含 xml 片段的文件。我需要在这个文件中添加一个子元素并重新保存它。我正在尝试在 Java (1.6) 中使用 xom。问题是文件中的数据包含命名空间前缀,所以当我构造我的 Document 对象时,我得到:
[致命错误] tsip:1:33: 与元素类型“publications”关联的属性“tsip:action”的前缀“tsip”未绑定。
该文件包含例如:
<publications tsip:action="replace">
<publication tsip:dw="000000" tsip:status="dwpi:equivalent" tsip:lang="ja" tsip:drawings="0">
<documentId>
<number tsip:form="dwpi">58071346</number>
<countryCode>JP</countryCode>
<kindCode>A</kindCode>
</documentId>
</publication>
</publications>
我的Java代码是:
FileInputStream fisTargetFile;
// Read file into a string
fisTargetFile = new FileInputStream(new File("C:\myFileName"));
pubLuStr = IOUtils.toString(fisTargetFile, "UTF-8");
Document doc = new Builder().build(pubLuStr, ""); // This fails
我怀疑我需要让代码命名空间知道,即添加如下内容:
doc.getRootElement().addNamespaceDeclaration("tsip", "http://schemas.thomson.com/ts/20041221/tsip");
但在创建文档文档之前,我看不到如何执行此操作。任何帮助,建议,不胜感激。