适用场景:只取 XML 中的部分节点值非常方便,我很喜欢 XPath,关于 XPath 语法请参考SelectNodes 与 XPath,这是 C# 中的,但是 XPath 语法是通用的。
import org.xml.sax.InputSource;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import javax.xml.xpath.XPath;import javax.xml.xpath.XPathExpression Exception;import javax.xml.xpath.XPathFactory; try { String xml = "<?xml version=\"1.0\"?><root><siteName>千一网络</siteName><siteUrl>http://www.cftea.com/</siteUrl></root>"; InputStream inputStream = new ByteArrayInputStream(xml.getBytes()); InputSource inputSource = new InputSource(inputStream); XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); String siteName = xpath.evaluate("/root/siteName", inputSource); // 如果同名节点有多个,希望返回数组,则跟第三个参数:XPathConstants.NODESET,返回类型变为 NodeList editText.setText(siteName); inputStream.close(); } catch (XPathExpression Exception e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
- Android 中处理 XML 的四种方式-DOM
- Android 中处理 XML 的四种方式-SAX
- Android 中处理 XML 的四种方式-PULL
- Android 中处理 XML 的四种方式-XPath