java dom问题中的命名空间

时间:2012-10-20 17:48:46

标签: java xml dom

我正在使用以下API来创建带有命名空间的Dom文档 我的问题是为什么我需要提出第一个论点“http://www.w3.org/2000/xmlns/” 它有某种常数吗? 当我把null我得到错误。我问它,因为它太通用了,为什么我应该把它?

rootTreeNode.setAttributeNS("http://www.w3.org/2000/xmlns/" ,"xmlns:m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");

谢谢!

1 个答案:

答案 0 :(得分:1)

以下是如何处理命名空间:

public static void main( String[] args ) throws Throwable {
   DocumentBuilderFactory dbf  = DocumentBuilderFactory.newInstance();
   dbf.setNamespaceAware( true );

   DocumentBuilder db = dbf.newDocumentBuilder();
   Document doc = db.newDocument();

   Element root = doc.createElement( "root" );
   root.setAttribute( "xmlns:m" , "http://www.lfinance.fr/blog-rachat-credits" );
   root.setAttribute( "xmlns:rt", "http://www.lfinance.fr/forum-rachat-credits" );
   doc.appendChild( root );

   Element elt = doc.createElement( "simple" );
   elt.setAttribute( "m:FC_TargetPath"   , "false" );
   elt.setAttribute( "m:FC_KeepInContent", "false" );
   elt.setAttribute( "rt:filterable"     , "false" );

   root.appendChild( doc.createTextNode( "\n\t" ));
   root.appendChild( elt );
   root.appendChild( doc.createTextNode( "\n" ));
   TransformerFactory.newInstance().newTransformer().transform(
      new DOMSource( doc ),
      new StreamResult( System.out ));
}