Java DOM默认名称空间
我想使用DOM创建具有默认命名空间的XML:Java DOM默认名称空间,java,dom,namespaces,default,Java,Dom,Namespaces,Default,我想使用DOM创建具有默认命名空间的XML: <?xml version="1.0" encoding="US-ASCII"?> <test xmlns="example:ns:uri" attr1="XXX" attr2="YYY"> <el>bla bla</el> </test> 我越来越 <?xml version="1.0" encoding="US-ASCII"?> <test xmlns="e
<?xml version="1.0" encoding="US-ASCII"?>
<test xmlns="example:ns:uri" attr1="XXX" attr2="YYY">
<el>bla bla</el>
</test>
我越来越
<?xml version="1.0" encoding="US-ASCII"?>
<test xmlns="example:ns:uri" ns0:attr1="XXX" xmlns:ns0="example:ns:uri" ns1:attr2="YYY" xmlns:ns1="example:ns:uri">
<el>bla bla</el>
</test>
布拉布拉
我在jdkv6中使用标准domapi。我做错了什么?
我想在下面划线-我想使用默认名称空间,但不想使用名称空间前缀
我想使用默认名称空间,但不想使用名称空间前缀
默认名称空间声明(xmlns=“…”
)仅适用于元素,而不适用于属性。因此,如果在名称空间中创建属性,则序列化程序必须将该名称空间URI绑定到前缀,并使用该前缀作为属性,以便准确序列化DOM树,即使相同的URI也绑定到默认的xmlns
。不固定的属性名称总是意味着没有名称空间,所以为了生成
<?xml version="1.0" encoding="US-ASCII"?>
<test xmlns="example:ns:uri" attr1="XXX" attr2="YYY">
<el>bla bla</el>
</test>
但这些属性不是:
rootElement.setAttributeNS(null, "attr1", "XXX");
rootElement.setAttributeNS(null, "attr2", "YYY");
谢谢你,伊恩-你的回答非常有用-我必须承认我没有意识到这个重要的事实。下面是指向XML规范的链接和另一个答案[
Element rootElement =
resultingDOMDocument.createElementNS("example:ns:uri", "test-results-upload");
rootElement.setAttributeNS(null, "attr1", "XXX");
rootElement.setAttributeNS(null, "attr2", "YYY");