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



我写了一个没有成功的问题:https://stackoverflow.com/questions/21296465/serialize-hashmap-as-as-xml-without-without-without-without-repeating--parent--parent--parent- - 元素。在我看来,也许我问了一个错误的问题。

是否有一个内置的Android类,用于非连续?

通过非连续,我的意思是能够操纵现有元素(添加/删除儿童等)。到目前为止,我发现了创建XML(XMLSerializer,building crens)的方法,但仅在连续文档中。

这是我要寻找的伪代码:

[...]
//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);

有了一些其他逻辑,这些功能可以创建以下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>

的确,您必须坚持使用XML DOM processing,其中整个文档都存储在RAM中,这使您可以随机读取/写入其节点和属性。XPath有助于穿越XML-Tree

开始创建自己的课程后,我再次开始搜索搜索,我找到了我想要的东西。它实际上与我的伪代码非常相似。这些类使用org.w3c.dom and javax.xml.parsers.documentBuilder,它在http://www.mkyong.com/java/java/how-to-create-create-create-xml-file-file-file-in-in-java-dom/-. <<<</p>

[...]
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
[...]
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
//New Document
Document doc = docBuilder.newDocument();
// root element
Element rootElement = doc.createElement("object");
doc.appendChild(rootElement);
Element child = doc.createElement("object");
doc.appendChild(rootElement);
// key element
Element key = doc.createElement("key");
key.appendChild(doc.createTextNode("key1"));
child.appendChild(key);
// value element
Element value = doc.createElement("value");
value.appendChild(doc.createTextNode("value1"));
child.appendChild(value);

创建:

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

最新更新