【问题标题】:I want to use Xpath in Android to parse XML我想在 Android 中使用 Xpath 来解析 XML
【发布时间】:2010-05-12 07:56:34
【问题描述】:

我喜欢用Xpath解析xml ins java,但是我在android上做同样的事情时,找不到XPath。

知道如何实现它。如果它不可能,那么任何其他快速的 android 解析器?

谢谢

【问题讨论】:

  • XML 树实例的 XPath 地址部分可能是解析 XML 文档的结果。

标签: xml android parsing xpath


【解决方案1】:

自 Android API Level 8(我认为那是 Android 2.2)以来,Android XPath 可用(即作为即用型实现),您可以找到更多信息here

让您开始 - 在活动范围内尝试:

XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "myNode";
NodeList nodes = (NodeList) xpath.evaluate(expression, parser, XPathConstants.NODESET);

“解析器”可以通过将您的 xml 文档放入您的 res/xml 文件夹来获得(您可能必须自己创建该 xml 文件夹)。然后您可以通过以下方式访问它:

//Do this withon the scope of an activity, you need the activitie's context!
Resources res = getResources();
//Get the xml file
//this is how you access the content of the xml folder 
//you previously created in the res folder
parser = res.getXml(R.xml.yourxmlfile);

【讨论】:

  • 我有一个错误:javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: XPath 中的未知错误。我的 XML : bookazertycatqwerty关键字> houseqsdfghjkl
  • @Sebastien 我也有同样的问题。有什么解决办法吗?
  • @Ready4Android 如果 XML 存储在服务器上并且您通过 URL 访问它会怎样?如何将该 URL 传递给 res.getXML(); ?
  • 这个答案对我不起作用。也许自 2011 年以来,Android XPath api 发生了变化?使用parser = res.getXml(R.xml.yourxmlfile) 在对xpath.evaluate 的调用中触发以下异常:“javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: Attempt to invoke interface method 'org.apache.xml.dtm.DTMAxisTraverser org. apache.xml.dtm.DTM.getAxisTraverser(int)' 在空对象引用上”。以这种方式获取parser 会产生一个XmlResourceParser 类型的对象。 xpath.evaluate 函数需要一个 InputSource,但这会触发异常。
猜你喜欢
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2013-03-21
  • 1970-01-01
相关资源
最近更新 更多