我嘗試創建一個帶有命名空間的 XML DOM - 但不知道該怎么做。
import java.io.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
public class App
{
public static void main (String args []) throws Exception
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ();
DocumentBuilder db = dbf.newDocumentBuilder ();
Document doc = db.newDocument ();
Element env = doc.createElement ("Env");
env.setAttributeNS ("aaa", "bbc", "ccc");
doc.appendChild (env);
TransformerFactory tf = TransformerFactory.newInstance ();
Transformer tr = tf.newTransformer ();
StringWriter sw = new StringWriter ();
tr.transform (new DOMSource (doc), new StreamResult (sw));
System.out.println (sw.toString ());
}
}
結果是
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Env xmlns:ns0="aaa" ns0:bbb="ccc"/>
但我想要的是
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Env xmlns:aaa="bbb"/>
我怎么能得到那個?
uj5u.com熱心網友回復:
通過使用直接設定屬性setAttribute()輸出您想要的結果。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ();
// You might also want to consider setting your
// DocumentBuilderFactory to be namespace aware by using
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder ();
Document doc = db.newDocument ();
Element env = doc.createElement ("Env");
// env.setAttributeNS ("aaa", "bbc", "ccc");
env.setAttribute("xmlns:aaa", "bbb");
doc.appendChild (env);
TransformerFactory tf = TransformerFactory.newInstance ();
Transformer tr = tf.newTransformer ();
StringWriter sw = new StringWriter ();
tr.transform (new DOMSource (doc), new StreamResult (sw));
System.out.println (sw.toString ());
輸出:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Env xmlns:aaa="bbb"/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422072.html
標籤:
上一篇:順風不與npmrundev
