使用 CSS 选择器而不是 XPath 查询 SimpleXML 对象

发布于 2024-09-15 18:51:40 字数 130 浏览 4 评论 0原文

我正在使用 SimpleXML 通过 PHP 加载和解析 XML 文档。

我对 XPath 不太熟悉,我更喜欢使用 CSS 选择器来解析它。我有什么选择?是否有为 SimpleXML 预先构建的东西,或者我应该使用完全不同的东西?

I'm using SimpleXML to load and parse an XML document with PHP.

I'm not too familiar with XPath and I would prefer using CSS selectors to parse it. What are my options? Is there anything pre-build for SimpleXML, or should I be using something different altogether ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

带刺的爱情 2024-09-22 18:51:40

SimpleXML 不支持 CSS 选择器,但我知道一些 PHP 和 Javascript 库可以将 CSS 选择器转换为 XPath 查询。 IIRC,有一个模仿 jQuery 选择器的 PHP 库,但我不记得它的名字了。希望它能激发别人的记忆。


事实证明我正在考虑的库不支持 CSS 选择器,但好消息是 Zend Framework 有一个 CSS 到 XPath 的转换器:

include 'Zend/Dom/Query/Css2Xpath.php';  

$xpath = Zend_Dom_Query_Css2Xpath::transform('div.class span');

$mySimpleXMLElement->xpath($xpath);

SimpleXML doesn't support CSS selectors, but I know that some PHP and Javascript librairies can convert a CSS selector to an XPath query. IIRC, there's a PHP library that mimicks jQuery's selectors but I can't remember its name. Hopefully it will jumpstart someone else's memory.


Turns out the library I was thinking about doesn't support CSS selectors, but the good news is the Zend Framework has a CSS-to-XPath translator:

include 'Zend/Dom/Query/Css2Xpath.php';  

$xpath = Zend_Dom_Query_Css2Xpath::transform('div.class span');

$mySimpleXMLElement->xpath($xpath);
可可 2024-09-22 18:51:40

Zend CSS-to-XPath 转换器并没有得到充分证明。索引选择器失败 - 像 tr:eq(1) 这样的东西不会转换为 tr[2]

The Zend CSS-to-XPath translator is not full proof. It fails for index selectors - something like tr:eq(1) will not be converted to tr[2]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文