【发布时间】:2022-01-20 23:48:14
【问题描述】:
我尝试创建一个带有命名空间的 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"/>
我怎样才能得到它?
【问题讨论】:
-
必须是 DOM 吗? JDOM2 和 XOM 等其他树模型使这更容易。