在android xpath中“TransformerException:一个预期的位置步骤”

前端之家收集整理的这篇文章主要介绍了在android xpath中“TransformerException:一个预期的位置步骤”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直试图从xml文件提取数据,但我不断收到此错误,我不知道我做错了什么.
  1. 10-23 14:20:29.250: WARN/System.err(3541): --------------- linked to ------------------
  2. 10-23 14:20:29.250: WARN/System.err(3541): javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: A location step was expected following the '/' or '//' token.

这是我的代码

  1. String pill;
  2.  
  3. URL url = new URL("file:///mnt/sdcard/cpdata/cpxml.xml");
  4. InputSource xml = new InputSource(url.openStream());
  5. XPath xpath = XPathFactory.newInstance().newXPath();
  6.  
  7.  
  8. pill = xpath.evaluate("//data/monday/p1/",xml);
  9. pills.add(pill);
  10. Log.d("PILLLLLLSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS",pill);
  11. tv.setText(pill + "hi");

这是我的xml文档:

  1. -<data>
  2. -<monday>
  3. <p1>test1</p1>
  4. <p2>test1</p2>
  5. </monday>
  6. -<tuesday>
  7. <p1>test1</p1>
  8. <p2>test1</p2>
  9. </tuesday>
  10. -<wednesday>
  11. <p1>1.0</p1>
  12. <p2>test1</p2>
  13. </wednesday>
  14. -<thursday>
  15. <p1>test1</p1>
  16. <p2>test1</p2>
  17. </thursday>
  18. -<friday>
  19. <p1>test1</p1>
  20. <p2>test1</p2>
  21. </friday>
  22. -<saturday>
  23. <p1>test1</p1>
  24. <p2>test1</p2>
  25. </saturday>
  26. -<sunday>
  27. <p1>test1</p1>
  28. <p2>test1</p2>
  29. </sunday>

解决方法

问题很明显:

pill = xpath.evaluate(“//data/monday/p1/”,xml);

使用的XPath表达式:

  1. data/monday/p1/

以“/”结尾,因此在语法上是非法的.

使用:

  1. pill = xpath.evaluate("//data/monday/p1",xml);

猜你在找的Android相关文章