使用下面的xpath查詢對屬性應用字符串函數(例如「規範化空間」)的正確語法是什麼?php xpath - 屬性上的字符串函數
查詢:「./@media」
我見過這樣的例子在其他地方,但如果我嘗試使用PHP的XPath的庫它,它沒有返回值...
使用下面的xpath查詢對屬性應用字符串函數(例如「規範化空間」)的正確語法是什麼?php xpath - 屬性上的字符串函數
查詢:「./@media」
我見過這樣的例子在其他地方,但如果我嘗試使用PHP的XPath的庫它,它沒有返回值...
一個DOMXPath對象上的使用query()將總是結果中的節點集(包裝在一個DOMNodeList對象),從未在一個字符串。
您無法提取XPath函數的結果。你必須查詢你想要處理的節點,並用PHP處理它們。
偉大 - 非常高效的編碼!我正在慢慢學習php的舊xpath庫的陷阱:)這裏希望他們很快就會移動到2.0! – EddyR 2009-05-02 09:36:23
./[normalize-space(@media)
請試試這個。
是的我試過了,它返回這個錯誤 - 可捕捉的致命錯誤:類DOMElement的對象無法轉換爲字符串 – EddyR 2009-05-02 09:13:11
這個怎麼樣?
normalize-space(./@media)
您也可以嘗試:
normalize-space(string(./@media))
,但我不認爲這是neccessary這裏。
我仍然得到相同的錯誤 – EddyR 2009-05-02 09:23:16
使用evaluate()而不是query()
。它將返回一個輸入結果。它自PHP 5.1起可用。
$doc = new DOMDocument();
$xpath = new DOMXpath($doc);
$q = $xpath->evaluate('"test"');
var_dump($q);
輸出:
string(4) "test"
我完整的代碼:$ xpath->查詢( 「./ [正常化空間(@」 $ {。$標記 「attributeitem」} $ {$ tag。「queryitem」}。「)]」) - > item(0)) – EddyR 2009-05-02 09:17:14
什麼類型是$ tag?後續代碼var_dump($標籤);可以告訴你。 – VolkerK 2009-05-02 09:30:51