我正在寻找一个HTML或XML解析器,让一个访问当前元素的偏移/位置中输入字符串或文件.
例如,如果遍历此字符串:
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
<p>sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来获取每个<p>标签的起始位置(包括空白),这里:7和72.
如果一个PHP解析器原生支持它会很棒(我看过这个SO问题中提到的DOM,XMLReader和其他库,但还没有找到方法)但是否则任何语言/框架都会精细.
注意:与此问题相关,但本地化程度较低.
小智 6
也许你可以使用Generic XML parser类(也在github上).
根据作者的描述:
我用这段代码测试了它:
<?php
require('xml_parser.php');
$file_name = 'test.xml';
$error = XMLParseFile($parser, $file_name, 1, $file_name.'.cache');
foreach ($parser->structure as $key => $val) {
if (is_array($val) && isset($val['Tag']) && !strcasecmp($val['Tag'], 'p')) {
print_r($parser->positions[$key]);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
该test.xml文件包含示例HTML代码段.
通过从命令行运行脚本,我得到以下输出:
Array
(
[Line] => 2
[Column] => 7
[Byte] => 12
)
Array
(
[Line] => 3
[Column] => 7
[Byte] => 80
)
Run Code Online (Sandbox Code Playgroud)
所以,这个Byte领域可能正是你所寻找的.
为了更好地理解它的工作原理,还要看一下它的源代码.
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |