JavaXML:如何输出子元素的名称空间?

JavaXML:如何输出子元素的名称空间?,java,xml,Java,Xml,我使用Java的类来处理XML文档对象 这是创建转换器的代码: import javax.xml.transform.TransformerFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.se

我使用Java的类来处理XML文档对象

这是创建转换器的代码:

import javax.xml.transform.TransformerFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;

Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "no");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

transformer.transform(source, result);
当前,我的输出如下所示:。我希望它包括每个元素的名称空间,如


如何才能做到这一点?

的包描述有一个节限定名称表示,这似乎意味着可以在输入和输出中同时表示名称空间

除了包含名称空间URI之外,我还不清楚结果会是什么样子

试一试-希望其他人会有更具体的经验。

注意
相同


您是否检查了您在
DocumentBuilderFactory
实例上调用的
setNamespaceAware(true)

我发现您需要将其作为前缀放在自己身上,而不是使用名称空间

例如,我使用el.setAttribute(“xmi:type”,type),而不是el.setAttributeNS(“xsi”,“type”,type);或el.setAttributeNS(“,“type”,type);
我发现NS方法并没有像您所想的那样做。此外,它仍将呈现xmlns=“…”而不是使用前缀。

[在stackoverflow上设置名称空间的答案][1][1]: