Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中用java读取id-xml_Java_Android_Xml - Fatal编程技术网

在Android中用java读取id-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> 所以我不需要对所有

我想向xml文件添加一些数据,如:

<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;