Java 是否有一个内置的Android类用于非连续地创建XML?

Java 是否有一个内置的Android类用于非连续地创建XML?,java,android,xml,Java,Android,Xml,我写了一个不太成功的问题:。我突然想到,也许我问错了问题 是否有内置的Android类用于非连续创建XML? 我所说的非连续性是指能够操作现有元素(添加/删除子元素等)。到目前为止,我已经找到了创建XML的方法(XmlSerializer,构建字符串),但只在连续文档中找到 以下是我正在寻找的伪代码: [...] //Note: Element is not a real class, but I'm guessing there will need to be a class that han

我写了一个不太成功的问题:。我突然想到,也许我问错了问题

是否有内置的Android类用于非连续创建XML?

我所说的非连续性是指能够操作现有元素(添加/删除子元素等)。到目前为止,我已经找到了创建XML的方法(XmlSerializer,构建字符串),但只在连续文档中找到

以下是我正在寻找的伪代码:

[...]
//Note: Element is not a real class, but I'm guessing there will need to be a class that handles adding/removing other attributes, values, and other Elements.

//add necessary header for XML
xmldoc.startXML(); 

// this creates and returns an Element representing "<object></object>" 
Element rootNode = xmldoc.addElement("object", ""); 

//this inserts "<key>key1</key>" into "<object></object>" and returns itself
Element key1 = rootNode.addChildElement("key", "key1"); 
//this inserts "<value>value1</value>" into "<object></object>" but I don't care about setting it as a variable for later use.
rootNode.addChildElement("value", "value1");

[...]

//write the XML as a String/Stream/Something (called handler here).
xmldoc.flush(handler);
[…]
//注意:Element不是一个真正的类,但我猜需要一个类来处理添加/删除其他属性、值和其他元素。
//为XML添加必要的头
xmldoc.startXML();
//这将创建并返回表示“”的元素
Element rootNode=xmldoc.addElement(“object”,“”);
//这会将“key1”插入“”并返回自身
Element key1=rootNode.addChildElement(“key”、“key1”);
//这会将“value1”插入“”中,但我不关心将其设置为变量以供以后使用。
addChildElement(“value”、“value1”);
[...]
//将XML编写为字符串/流/某物(此处称为处理程序)。
flush(处理程序);
通过一些附加逻辑,这些函数可以创建以下XML

<object>
    <key>root</key>
    <object>
        <key>key1</key>
        <value>value1</value>
    </object>
    <object>
        <key>key2</key>
        <value>value2</value>
    </object>
    <object>
        <key>ns</key>
        <object>
            <key>key3</key>
            <value>value3</value>
        </object>
        <object>
            <key>key4</key>
            <value>value4</value>
        </object>
    </object>
</object>

根
关键1
价值1
键2
价值2
ns
键3
价值3
关键4
价值4

在开始创建自己的类之后,我又开始用谷歌搜索,我找到了我想要的。它实际上与我的伪代码非常相似。这些类使用org.w3c.dom和javax.xml.parsers.DocumentBuilder,如中所述

创建:

<object>
    <key>root</key>
    <object>
        <key>key1</key>
        <value>value1</value>
    </object>
</object>

根
关键1
价值1

事实上,您必须坚持使用
XML DOM处理
,其中整个文档存储在RAM中,允许您随机读取/写入其节点和属性<代码>XPath帮助遍历xml树

我可以在内存中编写DOM时使用XPath吗?我认为XPath只是用于解析,而不是编写。您只能在内存中使用XPath!XPath用于搜索特定节点,而不是解析。这里有很多关于这个主题的信息和示例,例如这里,谢谢。我不是指在记忆中,我指的是解码而不是编码。不过,现在这是有道理的。
<object>
    <key>root</key>
    <object>
        <key>key1</key>
        <value>value1</value>
    </object>
</object>