java中xml文档的问题

时间:2011-07-14 08:46:47

标签: java xml

我正在写一个简单的程序,它获取一个字符串并将其转换为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;
        }

    }

3 个答案:

答案 0 :(得分:1)

您需要将元素添加到文档中,以便将其与文档相关联。尝试添加以下行:

result.appendChild(el);

有关详细信息,请参阅documentation

答案 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