日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了無法從字符串創(chuàng)建XML文檔的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我正在嘗試創(chuàng)建一個org.w3c.dom.Document形式的XML字符串。我用這個How to convert string to xml file in java作為基礎(chǔ)。我沒有得到例外,問題是我的文檔總是空的。XML是系統(tǒng)生成的,格式良好。我希望將其轉(zhuǎn)換為Document對象,以便可以添加新節(jié)點等。

public static org.w3c.dom.Document stringToXML(String xmlSource) throws Exception {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

InputStream input = IOUtils.toInputStream(xmlSource); //uses Apache commons to obtain InputStream
BOMInputStream bomIn = new BOMInputStream(input); //create BOMInputStream from InputStream
InputSource is = new InputSource(bomIn); // InputSource with BOM removed

Document document = builder.parse(new InputSource(new StringReader(xmlSource)));
Document document2 = builder.parse(is);
System.out.println("Document=" + document.getDoctype()); // always null
System.out.println("Document2=" + document2.getDoctype()); // always null

return document;
}

我嘗試過這些方法:我創(chuàng)建了一個BOMInputStream,認為BOM導(dǎo)致轉(zhuǎn)換失敗。我認為這是我的問題,但是將BOMInputStream傳遞給InputSource并沒有什么不同。我甚至嘗試傳遞一個由簡單XML和NULL組成的文字字符串。toString方法返回[#document:null]

我使用的是XPages,這是一個使用Java6的jsf實現(xiàn)。用于避免念力與Xpage相關(guān)類同名的Document類的全名。

推薦答案

不要依賴toString告訴您的內(nèi)容。它提供它認為對當(dāng)前類有用的診斷信息,在本例中,它就是.

"["+getNodeName()+": "+getNodeValue()+"]";

這對你沒有幫助。相反,您需要嘗試將模型轉(zhuǎn)換回String,例如.

String text
        = "<fruit>"
        + "<banana>yellow</banana>"
        + "<orange>orange</orange>"
        + "<pear>yellow</pear>"
        + "</fruit>";

InputStream is = null;
try {
    is = new ByteArrayInputStream(text.getBytes());
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();

    Document document = builder.parse(is);
    System.out.println("Document=" + document.toString()); // always null

    Transformer tf = TransformerFactory.newInstance().newTransformer();
    tf.setOutputProperty(OutputKeys.INDENT, "yes");
    tf.setOutputProperty(OutputKeys.METHOD, "xml");
    tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");

    ByteArrayOutputStream os = null;
    try {

        os = new ByteArrayOutputStream();
        DOMSource domSource = new DOMSource(document);
        StreamResult sr = new StreamResult(os);
        tf.transform(domSource, sr);

        System.out.println(new String(os.toByteArray()));

    } finally {
        try {
            os.close();
        } finally {
        }
    }

} catch (ParserConfigurationException | SAXException | IOException | TransformerConfigurationException exp) {
    exp.printStackTrace();
} catch (TransformerException exp) {
    exp.printStackTrace();
} finally {
    try {
        is.close();
    } catch (Exception e) {
    }
}

哪些輸出.

Document=[#document: null]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fruit>
    <banana>yellow</banana>
    <orange>orange</orange>
    <pear>yellow</pear>
</fruit>

這篇關(guān)于無法從字符串創(chuàng)建XML文檔的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:xml 創(chuàng)建 字符串 文檔
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定