INFO: Use XPath to Perform a Case-Insensitive Search with MSXML

Summary

MSXML includes two functions that you can use to filter data in a case-insensitive search. With MSXML 3.0, you can use the translate function. With MSXML 4.0, you can use either the translate function or the new ms:string-compare XPath function.

More Information

To perform a case-insensitive search by a DomainName property that is named "mydomain1.com" on the following XML data
<?xml version="1.0" ?>
<Domains>
<DomainName>Mydomain1.COM</DomainName>
</Domains>
the syntax for translate in MSXML 3.0 is as follows:
oXML.setProperty "SelectionLanguage", "XPath"
set node = oXML.selectSingleNode("Domains/DomainName[translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'mydomain1.com']")
The syntax for ms:string-compare in MSXML 4.0 is as follows:
'To use MSXML 4.0, you need to use 4.0 dependent progid explicitly.
' ...
'Set the select namespace for xmlns:ms
oXML.setProperty "SelectionNamespaces", "xmlns:ms='urn:schemas-microsoft-com:xslt'"
set node = oXML.selectSingleNode("Domains/DomainName[ms:string-compare(., 'mydomain1.com', 'en-US', 'i') = 0]")

References

For more information about the translate and the ms:string-compare functions, see the XML Software Development Kit (SDK) documentation.
Proprietăți

ID articol: 315719 - Ultima examinare: 23 mar. 2009 - Revizie: 1

Feedback