- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
这是 Javascript 中的有效 XPath:
id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]
这变成了与 DOMXPath 一起使用的有效 PHP XPath->query() 是
//*[@id="priceInfo"]//div[@class="standardProdPricingGroup"]//span[1]
我主要担心的是可能存在很多差异,我希望找出这些差异,但我在确定这些差异时遇到了问题。
这个问题也可以用不同的方式提出:由于 Javascript 可以有不同的有效 XPath 格式,如何将它们规范化以与 PHP 一起工作。
其中一项更新还提到,如果存在包含此定义的有效 DTD,则 id() 函数是有效的 XPath。我对输入 DTD 无能为力,如果有一种方法可以找到无需任何特定 DTD 即可工作的解决方案,那就太棒了。
更新:
我想用算法将第一种格式转换为第二种格式。我的输入是第一个而不是第二个。无法更改。
正如@Nison Maël 所指出的,第二种格式是有效的 Javascript XPath,如下所示:http://jsbin.com/elatum/2/edit不幸的是,这只会增加 Javascript XPath“碎片化”的问题。
@salathe 指出,如果记录的输入具有有效的 DTD,则有效的 Javascript XPath 查询在 PHP 中运行良好(@Dimitre Novatchev 在评论中提到了这一点,但忽略了重要性)。不幸的是,我无法控制输入 DTD,所以现在我必须研究一种方法来克服这个问题,或者找到一种即使没有有效 DTD 也能工作的解决方案。
最佳答案
刚刚看到 Salathe 实际上回答了同样的问题,但考虑到您的评论并更加强调这一点:
您不需要指定任何 DTD。只要您使用 DOMDocument::loadHTML
或 DOMDocument::loadHTMLFile
函数,HTML id
属性实际上是为 xpath id()
函数。使用 http://jsbin.com/elatum/2/edit 中给出的演示 HTML ,甚至在加载文档时也会出现错误:
Warning: DOMDocument::loadHTMLFile(): ID priceInfo already defined in ...
这已经表明这是一个真正的 ID 属性,因为它提示重复。相关示例代码如下所示:
$xpath = 'id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]';
$doc = new DOMDocument();
$doc->loadHTMLFile(__DIR__ . '/../data/file-11796340.html');
$xp = new DOMXPath($doc);
$r = $xp->query($xpath);
echo $xpath, "\n";
echo $r ? $r->length : 0, ' elements found', "\n";
if (!$r) return;
foreach($r as $node) {
echo " - ", $node->nodeValue, "\n";
}
输出是:
id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]
1 elements found
- hello
如果您需要更多控制,请先运行 xpath 以将所有 HTML id
属性标记为 xpath 的 ID:
$r = $xp->query("//*[@id]");
if ($r) foreach($r as $node) {
$node->setIdAttribute('id', true);
}
然后您可以使用与 id()
函数相同的 xpath,无需更改它。
关于php - 在有效的 PHP query() XPath 中转换 Javascript XPath |标准化 JS XPath --> PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11796340/
某人在 Silverlight posted MVVM 目前缺乏标准化,所以每个人都有自己的风格.. 这就是为什么我和 WPF Disciples 的一些人正在积极讨论每个人都同意的 MVVM 元素。
我有以下数据集: dat tests2 * 20 Score 1 13.333333 2 10.666667 3 2.666667 4 9.333333 5 13.3333
我有一个 double 组,表示某些事件发生的概率,[25,25,25,10,15] 表示事件 A,B..E。这些数字加起来是 100。 通过我的分析,我希望能够排除某个事件发生或不发生的可能性。 所
USPS webtools 很贵,而且 Google Maps 没有某些地址。有没有免费或开源的解决方案? 最佳答案 根据您的业务性质,或者如果您是非营利或教育机构,有一家在线提供商可为您提供 fre
我有一个 json 对象,里面有对象例如 user: {"name": "tim"} 并希望有一种方法将其转换为 "user.name": 'tim' 我已经尝试过:Javascript Recurs
我有一个名为 spam 的数据集,其中包含与垃圾邮件相关的 58 列和大约 3500 行数据。 我计划将来对此数据集运行一些线性回归,但我想事先进行一些预处理并将列标准化为均值和单位方差为零。 我被告
我试图找到一种方法来强调音频中高点和低点之间的差异。我似乎找不到有关如何执行此操作的文档-也许可以使用ffmpeg完成。非常感谢来自对信号处理了解更多的人的一些指导。 最佳答案 从根本上讲,膨胀器与压
如何缩放/规范化每行数据(观察)?像 [-1:1] 这样的 z 分数? 我看过之前的帖子,其中涉及整个数据集的标准化,如下所示 https://stats.stackexchange.com/ques
例如: http://www.google.co.uk www.google.co.uk google.co.uk 将全部转换为: google.co.uk 我本来想使用 System.Uri 类,但
我可以使用此代码从 json 文件导入数据... import requests from pandas.io.json import json_normalize url = "https://da
规范化 Prolog 原子中空白字符(空格、换行符、制表符)的最佳方法是什么,例如在 SWI-Prolog 中。IE。我想要一个规则: normalize_space_in_atom(+Atom1,
如何缩放/规范化每行数据(观察)?像 [-1:1] 这样的 z 分数? 我看过之前的帖子,其中涉及整个数据集的标准化,如下所示 https://stats.stackexchange.com/ques
我正在尝试阅读代码片段,但它对我来说没有任何意义。请帮助我 /** * To make it easy to query for the exact date, we normalize all
我是一名研究人员,拥有大约 17,000 份自由文本文档,其中大约 30-40% 与我的结果相关。是否有一个开源工具可以用来确定与结果相关的最常见的单词(甚至短语,但不是必需的),并对已经出现的单词的
我正在尝试使用 L2 范数(单位长度)对 numpy 矩阵的行进行标准化。 当我这样做时,我发现了一个问题。 假设我的矩阵“b”如下: 现在,当我对第一行进行标准化时,如下所示,它工作正常。 但是当我
我有一个 3 列数组。数组的第一列的值介于 1 和 10 之间。我需要提取第一列为 1 的所有行,并规范化该数组切片的第三列。然后对第一列等于 2 等的所有行重复相同的操作。 如果我运行此代码,它会使
如果我通过许多不同的文件/脚本使用这个结构当需要更改时,如何才能只更改一个地方,而不必在每个文件中更改它。 u = contents incomingUrl = urlparse(u).query o
我有 1MB 的文本文件。我想删除空格、换行符、制表符,并以 4KB 迭代方式将 1MB 文件的字符大小写从小写转换为大写。 我写了这段代码: for (i = 0, j= 0; i 首先,让我们定
这实际上是一个机器学习分类问题,但我想有一种非常好的快速而肮脏的方法来做到这一点。我想将描述 NFL 球队的字符串(例如“San Francisco”或“49ers”或“San Francisco 4
我正在创建游戏评论数据库。我对此很陌生,但我正在尽力。关于数据库的一点点:系统很简单,用户填写 php 表单,在其中插入他的姓名、电子邮件,然后选择反馈是好还是坏并留下评论/建议。我正在添加照片的视觉
我是一名优秀的程序员,十分优秀!