我有一个用过滤器搜索的页面。我有这个代码,例如,
xmlTempResultSearch = xmlResidentListDisplay.selectNodes("//PeopleList/Row[@LastName != '"+txtSearch.value+"']");
xmlTempResultSearch.removeAll();
这将选择与txtSearch
文本框中输入的LastName不相等的数据,然后将其从结果集中删除,以使其过滤为等于txtSearch
文本框中的姓氏。< / p>
我对这段代码的问题是它应该与txtSearch
。值相等(=),我想要的是我希望结果集 LIKE {{1} }。我的页面上发生的情况是,当我在txtSearch文本框中输入“txtSearch.value
”时,其结果集就是所有带有“santos
”的姓氏。但是当我输入“santos
”时,什么都没有出现。我想要与“sant
”相同的结果集,因为它包含'sant'
答案 0 :(得分:14)
您可以使用所有XPath(1.0)字符串函数。如果您有XPath 2.0,那么您甚至可以使用RegEx 。
<强> contains()
强>
<强> starts-with()
强>
<强> substring()
强>
<强> substring-before()
强>
<强> substring-after()
强>
<强> concat()
强>
<强> translate()
强>
<强> string-length()
强>
XPath 1.0中没有** ends-with()
,但可以使用此XPath 1.0表达式轻松表达**:
substring($s, string-length($s) - string-length($t) +1) = $t
当字符串true()
以字符串$s
结尾时, 正好为$t
。
答案 1 :(得分:4)
您可以使用启动功能而不是功能。参考:
http://www.w3schools.com/xpath/xpath_functions.asp
xmlTempResultSearch = xmlResidentListDisplay.selectNodes("//PeopleList/Row[not(starts-with(@LastName,'"+ txtSearch.value +"'))]");
答案 2 :(得分:2)
你可以使用XPath的contains()函数:
xmlTempResultSearch = xmlResidentListDisplay.selectNodes("//PeopleList/Row[not(contains(@LastName,'"+txtSearch.value+"'))]");