9

是否有像 JAVA/Android 库这样使用 CSS 选择器来解析 XML 的 jQuery?

像 :

String desc = myXML.find("bloc[type=pro]").get(0).attr("description");

与 jQuery 一样,Chainability 也是我正在寻找的东西......

我希望这存在!

4

5 回答 5

9

虽然最初设计为支持 CSS 选择器的 HTML 解析器,但如果您的唯一目的是提取数据而不是操作数据, Jsoup 也适用于 XML 文档。

Document document = Jsoup.parse(xmlString);
String desc = document.select("bloc[type=pro]").get(0).attr("description");
// ...

您会看到,语法几乎与您在问题中的语法相同。

于 2011-08-03T22:17:38.710 回答
3

Apache Jericho是您正在寻找的。

你的例子看起来像

String desc = source.getFirstElement( "type", "pro" ).getAttributeValue( "description" );

用 jericho 解析 HTML 是一种魅力,所以我想结构良好的 XML 更容易。

于 2011-08-03T09:15:46.267 回答
2

我使用 XPath 来解决这个问题。像 JDOM 这样的 XML 解析对 XPath 来说是可以的。也许 jQuery 看看 XPath 是如何工作的:p

//bloc[@type="pro"][1]/@description

Xpath 索引从 1 开始,而不是 0

https://www.w3schools.com/xml/xpath_syntax.asp

于 2011-08-09T14:05:15.003 回答
2

由于JsoupJericho等其他库中存在一些错误,因此与我的预期不同,

我写了一个类扩展org.xml.sax.helpers.DefaultHandler来解析 XML。然后我编写了另外两个看起来像Jsoup 的类,其中包含两个Element处理CSS3 选择器并返回属性值的函数。Elementsfindattr

我现在正在清理和评论该代码......稍后我会为感兴趣的人发布该库。

xmlDoc.find("bloc[type=Pro]>act").attr("label");

现在可以像在 jQuery 中一样!


编辑 !

这是访问代码的链接,供感兴趣的人使用:Google Code Project


移至 GitHub:https ://github.com/ChristopheCVB/JavaXMLQuery

于 2011-08-09T15:03:39.530 回答
1

droidQuery库可以完成您正在寻找的许多事情。尽管语法略有不同,但您可以:

  • 使用链接的jQuery样式命令获取视图属性,例如:

    CharSequence text = $.with(this, R.id.myTextView).attr("text");
    
  • 解析 XML:

    Document dom = $.parseXML(myXMLString);
    

如果您是jQuery的粉丝,您会很高兴看到它提供的几乎所有功能都包含在droidQuery中,尽管有时语法可能会有所不同,但它的主要目标是在语法上尽可能接近jQuery 。

于 2013-11-13T04:36:30.193 回答