2017-04-07 30 views
1

有没有办法在PHP中用xpath定义创建一个DomElement,稍后将其添加到DomDocument中。从xpath定义构建DomNode

可以说,我们有

$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"/> 
+0

你想要'DomElement'包含以下数据:<'? –

+0

是的,那么我必须将它添加到之前创建的DomDocument –

回答

1

当然这是一种方式,但这并不容易。你将不得不为语言和解析器定义Xpath。

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

所以你首先必须定义你自己的语言,它使用与Xpath相同的语法,但功能少得多。

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