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">
求各路大虾解决啊!!! 展开
<?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">
求各路大虾解决啊!!! 展开
2个回答
展开全部
下边给你一个例子,我这里是没有问题的。
我看你的代码觉得你的代码有问题。
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) {
}
}
}
我看你的代码觉得你的代码有问题。
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试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询