0
我正在使用XPath的contains功能來查詢下面的XML文件的「description」元素。當使用「全新」進行查詢時(如下面的xpath表達式代碼所示),它將檢索XML數據。但是,如果使用「低價全新」,則不會檢索到任何內容。顯而易見的結論是,包含函數只會檢索完全匹配的文本字符串,並且如果單詞相互分離(如下面的描述元素),則不起作用。XPath - 查詢不完全匹配的文本字符串
XPath是否有一個函數或方法在查詢描述元素時使用字符串「低價格全新」來檢索以下XML數據?謝謝!將使用
/products/product[contains(description, "brand new") and contains(description, "low price")]
當然,要做到這一點
$xmldoc = simplexml_load_file("products.xml");
$query = $xmldoc->xpath('/products/product[contains(description, "brand new")]');
foreach($query as $Products) {
echo $Products->name . " ";
echo $Products->description . "<br>";
}
<products>
<product type="Electronics">
<name>Desktop</name>
<price>499.99</price>
<store>Best Buy</store>
<description>low price, 17 inch screen, brand new </description>
</product>
</products>
不,不與XPath 1.0功能,但你當然可以使用2'contains()'查詢。另外,你可能想使用'normalize-whitespace()'。 – Wrikken