gpt4 book ai didi

android - 如何在 Android 的 XML 中附加标签?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:29 27 4
gpt4 key购买 nike

我想将一些内容写入 XML 文件。为此,我创建了一个 XML 文件,并用元素、属性和值编写标签,其中包含一些数据,如下所示:

XmlSerializer serializer = Xml.newSerializer();
serializer.startTag(null, element);
serializer.attribute(null, atbname, value);
serializer.text(text);
serializer.endTag(null, tag);

如果我想添加一个带有新元素、新属性等的新标签,我在标签的位置输入元素,它用以前的标签修改。

如何将新标签附加到之前附加的标签中?

最佳答案

在调用 serializer.startDocument() 之后和调用 serializer.endDocument() 之前,您可以创建任意数量的标签。调用 endDocument 后,您的 xml 就完成了。如果您已将此 xml 写入文件中,现在再次编写相同的代码来创建 xml 并更改任何类型的值,那么新的 xml 将覆盖之前的 xml 文件。因此您将获得具有新插入标签的 xml 文件。如果您想向先前存在的 xml 文件添加一些新标签,那么首先解析该 xml 文件获取所有内容并创建另一个 xml 文件,该文件将首先从先前的 xml 中获取数据并处理它,然后添加新插入的数据,以便您新创建的 xml 将包含所有内容(包括以前的数据和新数据)

private String writeXml(){
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.startTag("", "messages");
serializer.attribute("", "number", "value of attribute");

serializer.startTag("", "title");
serializer.text(1+" title");
serializer.endTag("", "title");
serializer.startTag("", "title");
serializer.text(2+" text");
serializer.endTag("", "title");


serializer.endTag("", "messages");
serializer.startTag("", "messages1");
serializer.attribute("", "number", "value of attribute");

serializer.startTag("", "title");
serializer.text(1+" title");
serializer.endTag("", "title");
serializer.startTag("", "title");
serializer.text(2+" text");
serializer.endTag("", "title");


serializer.endTag("", "messages1");
serializer.endDocument();
return writer.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}

输出

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<messages number="value of attribute">
<title>1 title</title>
<title>2 text</title>
</messages>
<messages1 number="value of attribute">
<title>1 title</title>
<title>2 text</title>
</messages1>

关于android - 如何在 Android 的 XML 中附加标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com