编写和读取XML最简单的方法

我想知道在Android中写入和parsingXML文件的最简单方法是什么。

我的要求很简单。 示例文件将是这样的:

<Item ID="1" price="$100" Qty="20" /> 

我只想通过ID检索一个项目,并阅读价格和数量。

我指的是使用XmlResourceParser来分析自定义编译的XML ,但想知道是否有一个轻量级的方式做一些微不足道的事情(仍然使用标签)。

Solutions Collecting From Web of "编写和读取XML最简单的方法"

如果真的那么简单,你可以用printf()或类似的东西来写。

对于parsing,你最好使用一个真正的XMLparsing器(或许是@netpork提出的SimpleXML)。 但是对于一些真正的小事,你可以使用正则expression式 – 这里是我常用的集合,你需要主要的“attrlist”和“stag”(属性列表和开始标签)。

 xname = "([_\\w][-_:.\\w\\d]*)"; # XML NAME (imperfect charset) xnmtoken = "([-_:.\\w\\d]+)"; # xncname = "([_\\w][-_.\\w\\d]*)"; # qlit = '("[^"]*"|\'[^\']*\')'; # Includes the quotes attr = "$xname\\s*=\\s*$qlit"; # Captures name and value attrlist = "(\\s+$attr)*"; # startTag = "<$xname$attrlist\\s*/?>"; # endTag = "</$xname\\s*>"; # comment = "(<!--[^-]*(-[^-]+)*-->)"; # Includes delims pi = "(<\?$xname.*?\?>)"; # Processing instruction dcl = "(<!$xname\\s+[^>]+>)"; # Markup dcl (imperfect) cdataStart = "(<!\[CDATA\[)"; # Marked section open cdataEnd = "(]]>)"; # Marked section close charRef = "&(#\\d+|#[xX][0-9a-fA-F]+);"; # Num char ref (no delims) entRef = "&$xname;"; # Named entity ref pentRef = "%$xname;"; # Parameter entity ref xtext = "[^<&]*"; # Neglects ']]>' xdocument = "^($startTag|$endTag|$pi|$comment|$entRef|$xtext)+\$"; 

XML规范的草案甚至包含了XML的“简单”语法,它可以正确find节点边界,但不能捕获所有错误,扩展实体引用等。请参阅https://www.w3.org/TR/WD- xml-lang-970630#secF 。

主要缺点是,如果稍后遇到更奇怪的数据,可能会中断。 例如,某人可能会向您发送带有注释的数据,语法错误或未引用的属性,或者使用&QUOT;或其他。