我正在写一个简单的程序,它获取一个字符串并将其转换为xml文档,但它没有显示内容的值我设置它显示为null!
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Server {
/**
* @param args
*/
public static void main(String[] args) {
Server server=new Server();
Document dc=server.stringToDocument("f0");
System.out.println(dc.getTextContent());
}
public org.w3c.dom.Document stringToDocument(String order)
{
org.w3c.dom.Document result=null;
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try{
DocumentBuilder db=dbf.newDocumentBuilder();
result=db.newDocument();
Element el=result.createElement("ORDER");
el.setTextContent(order);
}
catch (Exception e) {
System.out.println("DB in line 1418 exception");
}
return result;
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要添加以下行:
result.appendChild(el);
到stringToDocument方法。
要获取要打印的xml字符串,可以使用以下方法:
public String documentToString(Document doc) {
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
String xmlString = result.getWriter().toString();
return xmlString;
} catch (Exception e) {
return null;
}
}
答案 2 :(得分:0)
您正在文档节点上调用getTextContent
。这总是会产生一个空值,因为您可以在api文档中阅读:
http://download.oracle.com/javase/1.5.0/docs/api/org/w3c/dom/Node.html#getTextContent()
如果您调用dc.getFirstChild().getTextContent()
(将元素附加到文档后),您将获得该值,因为现在您正在元素节点上调用getTextContent
。