从xpath定义构建DomNode

时间:2017-04-07 10:42:04

标签: php xml xpath domdocument

在PHP中是否有办法创建一个DomElement,稍后将从xpath定义添加到DomDocument中。

让我们说,我们有

$xpath = 'a:ul[@class="something]';

我想要的结果是,DomElement包含:

<a:ul class="something"/>

或者,如果:

$xpath = 'a';
//result <a/>

另一个例子:

$xpath = 'a:ul[@class="something and @id=abc]'; 
//result <a:ul class="something" id="abc"/>

1 个答案:

答案 0 :(得分:1)

当然这是一种方式,但这并不容易。您必须为语言定义Xpath并为其定义解析器。

以下是Xpath中的许多功能,这些功能极难或无法扩展到DOM结构。一个简单的例子是//* - 它匹配文档中的任何元素节点,但它没有可用于创建节点的标记名称。

因此,您首先必须定义自己的语言,该语言使用与Xpath相同的语法,但功能要少得多。

然后你可以为它创建一个解析器,并最后使用DOM方法来创建XML节点。