Java 生成xml 主节点属性问题!

需要达到的<?xmlversion="1.0"encoding="utf-8"?><ShopOrdersxmlns:xsi="http://www.w3.org/2001... 需要达到的
<?xml version="1.0" encoding="utf-8"?>
<ShopOrders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ShopOrder>
<MainInfo>

<order_id>20120911154846330</order_id>
<item_no>12A1576</item_no>
<in_date>2012-09-11 15:50:18.0</in_date>

</MainInfo>
<ShopComList>
<sale_id>Product0571</sale_id>
<sale_model>惠普 HP LASERJET 1020 PLUS 激光打印机</sale_model>
<StockCataId>A030202</StockCataId>
</ShopComList>
</ShopOrder>
</ShopOrders>
目前程序加了

报错了
Now we build an XML document .....
The name "xmlns:xsi" is not legal for JDOM/XML attributes: Attribute names cannot contain colons.
这怎么解决啊,或者谁有个这种Java生成xml能运行的Demo啊!
前提是xml中主节点,必须像这样<ShopOrders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
求各路大虾解决啊!!!
展开
 我来答
百度网友845f74e61
2012-09-25 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1646万
展开全部
下边给你一个例子,我这里是没有问题的。
我看你的代码觉得你的代码有问题。
Document 是一个接口,是不可能实例化出来的。

Doc = new Document(root,type);
这一句不知道你用的是那个包中的,你用的是DOM4J?
dom4j我只是看过基本的,一般的dom方式,我都用JDK自带的来实现。
---------------------------------------------------------------------------------------------------------
import java.io.FileOutputStream;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Test {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("root");
Element shopOrders = doc.createElement("ShopOrders");
shopOrders.setAttribute("xmlns:xsi",
"http://www.w3.org/2001/XMLSchema-instance");
shopOrders
.setAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
root.appendChild(shopOrders);
doc.appendChild(root);
try {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
PrintWriter pw = new PrintWriter(new FileOutputStream("D:\\a.xml"));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
System.out.println("生成XML文件成功!");
} catch (Exception e) {
}
}
}
更多追问追答
追问

这种能能在后面加一个啊?

追答
不能,除非你中间有文本内容。你可以考虑放一个空白。
再一个,

你这也是非法的XML啊

这已经结束了,
你再加
这个XML是错误的。
匿名用户
2012-09-24
展开全部
意思是:xmlns:xsi当属性名不合法,你换成dom4j试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式