在Android中用java读取id-xml
我想向xml文件添加一些数据,如:在Android中用java读取id-xml,java,android,xml,Java,Android,Xml,我想向xml文件添加一些数据,如: <people> <person name="Jo"> <number>0</number> ... </person> <person name="Steve"> <number>5</number> ... </person> </people> 所以我不需要对所有
<people>
<person name="Jo">
<number>0</number>
...
</person>
<person name="Steve">
<number>5</number>
...
</person>
</people>
所以我不需要对所有nodechild进行循环。我的问题是,为此我需要定义一个模式,但Java在以下代码的第四行中返回了一个错误:
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
docFactory.setNamespaceAware(true);
docFactory.setValidating(true);
docFactory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
docFactory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", "my schema in a string");
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
错误是:
java.lang.IllegalArgumentException:
我已经输入了:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
为什么我会有这个错误?当然,我可以在孩提时代使用name,在NodeList中阅读所有内容,然后使用循环,但我认为这种方式有更好的性能
PS:我将模式作为字符串插入。我不知道是否会有错误,因为错误在前一行,但如果我需要在文件中包含架构,我应该将文件保存在哪里?在原始文件夹中?是的,您总是可以使用
DOM
、SAX
和Pull Parser
,但请务必查看下面提到的这些来解析和操作XML数据
-JAXP
和JAXB
-
Castor
最后,我不得不将名称作为值,而不是属性,并执行循环。这是我唯一的选择
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;