首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML名称空间- xmlns

XML名称空间- xmlns
EN

Stack Overflow用户
提问于 2013-10-16 08:03:38
回答 1查看 1.3K关注 0票数 0

我正在尝试从Java生成一个XML。

就像这样:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<ElementFile 
  xmlns="http://www.url.com/bla/bla" 
  xmlns:common="http://www.url.com/bla/bla/bla">
  <Regulation>
    <blablaElement>0000-0000</blablaElement>
  </Regulation>
</ElementFile>

为此,我编写了以下代码:

代码语言:javascript
复制
ElementFile = document.addElement( "ElementFile" )
  .addNamespace("xmlns","http://www.url.com/bla/bla") 
  .addNamespace("common", "http://www.url.com/bla/bla/bla");

但是生成的代码是:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<ElementFile 
  xmlns:xmlns="http://www.url.com/bla/bla" 
  xmlns:common="http://www.url.com/bla/bla/bla">
  <Regulation>
    <blablaElement>0000-0000</blablaElement>
  </Regulation>
</ElementFile>

但是,如果我写这个(没有xmlns)

代码语言:javascript
复制
ElementFile = document.addElement( "ElementFile" )
  .addNamespace("","http://www.url.com/bla/bla") 
  .addNamespace("common", "http://www.url.com/bla/bla/bla");

然后,xml正确地生成行,但默认情况下它会添加xmlns=:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<ElementFile 
  xmlns="http://www.url.com/bla/bla" 
  xmlns:common="http://www.url.com/bla/bla/bla">
  <Regulation xmlns="">
    <blablaElement>0000-0000</blablaElement>
  </Regulation>
</ElementFile>

我很迷茫..。

更新问题

对不起,但我不知道如何将您的答案集成到我的代码中。我是这个领域的新手。

我的完整代码是:

代码语言:javascript
复制
XMLWriter writer = new XMLWriter(new FileWriter("xmlFileName"), format);

Document document = DocumentHelper.createDocument();

Element ElementFile = document.addElement( "ElementFile" )
    .addNamespace("xmlns","http://www.url.com/bla/bla") 
    .addNamespace("xmlns:common", "http://www.url.com/bla/bla/bla");

Element Regulation = ElementFile.addElement( "Regulation" );
    Element blablaElement = Regulation.addElement( "blablaElement" )
        .addText( "0000-0000" );                

writer.write(document);
writer.close();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 08:07:34

代码语言:javascript
复制
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
dbfac.setNamespaceAware(true);
DocumentBuilder docBuilder;
docBuilder = dbfac.newDocumentBuilder();
DOMImplementation domImpl = docBuilder.getDOMImplementation();    
Document doc = domImpl.createDocument("http://www.url.com/bla/bla", "ElementFile ", null);
doc.setXmlVersion("1.0");
doc.setXmlStandalone(true);

Element elementFile = doc.getDocumentElement();
elementFile.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:common","http://www.url.com/bla/bla/bla");

并向此文档中添加元素。

您在这里有一个类似的问题:How to create attribute (xmlns:xsd) to XML node in Java?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19398105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档