2017-04-07 70 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節點。