簡體   English   中英

如何讀取/寫入xml文件?

[英]How to Read/Write to an xml file?

我已經創建了一個XML文件,其中包含標簽和標簽值。

<?xml version="1.0" encoding="utf-16"?>
<Scoreboard>

<Score>
    <username>Ryan</username>
    <points>200</points>
</Score>

我想要做的就是讀取標簽中的信息,以及用新標簽寫他已經創建的xml文檔。 如果我想添加用戶名:Andrew,點數:100,我將如何實現? 另外,我如何讀取xml文件,以便顯示所有分數及其信息?

         Read - InputStream is = getAssets().open("highscores2.xml");

                DocumentBuilderFactory dbFactory = 
                DocumentBuilderFactory.newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                Document doc = dBuilder.parse(is);

                Element element = doc.getDocumentElement();
                element.normalize();
         write -   InputStream is = getAssets().open("highscores2.xml");

                DocumentBuilderFactory dbFactory = 
                DocumentBuilderFactory.newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                Document doc = dBuilder.parse(is);

                NodeList nodes = doc.getElementsByTagName("Score");

                Text a = doc.createTextNode("Dylly");
                Element p = doc.createElement("username");
                p.appendChild(a);

                nodes.item(0).getParentNode().insertBefore(p, nodes.item(0));         

截至目前,我已將我的xml文件存儲在資產文件夾中,但是當我嘗試對其進行寫操作時,我收到一個錯誤-說它是只讀的。 我也該如何解決?

任何幫助將不勝感激,我整個下午都在努力尋找解決該問題的方法,並且幾乎沒有提出任何建議,謝謝。

有一個用於編寫xml文件的類:

serializer = Xml.newSerializer();
writer = new StringWriter(); 
try { 
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true); 
serializer.setPrefix(prefix, namespace); 
serializer.startTag(prefix, tagName); 
serializer.attribute(prefix, attrName, value);
serializer.endTag(prefix, tagName); 
serializer.endDocument(); 
return writer.toString();
 } catch (IOException e) {
 throw new RuntimeException(e);
 }

甚至用於讀取xml文件:

XmlPullParserFactory xmlPullParserFactory = XmlPullParserFactory.newInstance(); 
xmlPullParserFactory.setNamespaceAware(true); 
XmlPullParser xmlPullParser = xmlPullParserFactory.newPullParser(); 
xmlPullParser.setInput(new StringReader(xml)); 
return xmlPullParser;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM