我正在尝试使用Java
.
<entry gd:etag="*" xmlns="http://www.w3.org/2005/Atom">
<id>http://www.google.com/m8/feeds/contacts/default/base/contactid</id>
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/contact/2008#contact"/>
<gd:name>
<gd:fullName>{Name}</gd:fullName>
</gd:name>
<gd:email rel="http://schemas.google.com/g/2005#work"
primary="true"
address="{Email}" displayName="Mani"/>
<content type="text">Notes</content>
<gd:phoneNumber rel="http://schemas.google.com/g/2005#other"
primary="true">{MobileNumber}</gd:phoneNumber>
</entry>
我的java代码是
DocumentBuilderFactory docBuildFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuildFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element entry = doc.createElement("entry");
entry.setPrefix("gd");
entry.setAttribute("gd:etag","*");
doc.appendChild(entry);
Element id = doc.createElement("id");
id.setTextContent("http://www.google.com/m8/feeds/contacts/default/base/"+contactID);
entry.appendChild(id);
Element category = doc.createElement("catagory");
category.setAttribute("scheme","http://schemas.google.com/g/2005#kind");
category.setAttribute("term","http://schemas.google.com/contact/2008#contact");
entry.appendChild(category);
Element name = doc.createElement("gd:name");
Element fullName = doc.createElement("gd:fullname");
fullName.setTextContent(newName);
name.appendChild(fullName);
entry.appendChild(name);
....
StringWriter stringWriter = new StringWriter();
StreamResult result = new StreamResult(stringWriter);
DOMSource source = new DOMSource(entry);
TransformerFactory transformFactory = TransformerFactory.newInstance();
Transformer transformer = transformFactory.newTransformer();
transformer.transform(source , result);
String xmlString = stringWriter.toString();
当我运行上面的代码时,我得到了以下异常
线程“主”org.w3c.dom.DOMException 中的异常:NAMESPACE_ERR:尝试以不正确的命名空间方式创建或更改对象。
在 java.xml/com.sun.org.apache.xerces.internal.dom.NodeImpl.setPrefix()
有人可以建议我哪里出错了吗?