var result = xmldom.evalute('employee/name',
xmldom.documentElement,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);if(result!=null){alert(result.singleNodeValue.tagName);}
18.2.1.2 简单类型结果
通过booleanValue、numberValue、stringValue属性返回表达式计算结果
var result = xmldom.evalute('count(employee/name)',
xmldom.documentElement,null,XPathResult.NUMBER_TYPE,null);if(result!=null){alert(result.numberValue);}
18.2.1.3 默认类型结果
resultType属性表示返回的结果类型
var result = xmldom.evalute('count(employee/name)',
xmldom.documentElement,null,XPathResult.ANY_TYPE,null);if(result!=null){switch(result.resultType){case XPathResult.STRING_TYPE:...break;case XPathResult.NUMBER_TYPE:...break;}}
18.2.1.4 命名空间支持
<?xml version="1.0" ?><wrox:booksxmlns:wrox="http://www.wrox.com/"><wrox:book><wrox:title>Professional JavaScript for Web Developers</wrox:title><wrox:author>Nicholas C. Zakas</wrox:author></wrox:book></wrox:books>
方式一:使用createNSResolver()方法
//包含命名空间定义的节点var nsresolver = xmldom.createNSResolver(xmldom.documentElement);var result = xmldom.evalute('wrox:book/wrox:author',
xmldom.documentElement, nsresolver
,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);if(result!=null){alert(result.snapshotLength);}
方式二:定义一个函数
接收一个命名空间前缀,返回关联的URI
在不确定文档中的哪个节点包含命名空间定义的情况下使用
//包含命名空间定义的节点varnsresolver=function(prefix){switch(prefix){case"wrox":return"http://www.wrox.com/";break;...}};var result = xmldom.evalute('wrox:book/wrox:author',
xmldom.documentElement, nsresolver
,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);if(result!=null){alert(result.snapshotLength);}
18.2.2 IE中的XPath
节点方法
selectSingleNode()
selectNodes()
DOM文档对象方法
setProperty()
实现对命名空间的支持
接收参数
属性名 SelectionNamespaces
属性值
"xmlns:prefix1=‘url1’ xmls:prefix2=‘url2’ "
18.2.3 跨浏览器使用XPath
重新实现selectSingleNode()和selectNodes()方法
18.3 浏览器对XSLT的支持
XSLT
使用 XSLT 将 XML 文档转换为其他文档
18.3.1 IE中的XSLT
18.3.1.1 简单的XSLT转换
transformNode()
载入XSLT后,在节点上调用,返回包含转换信息的字符串
xmldom.load("employee.xml");
xsltdom.load("employees.xslt");var result = xmldom.transformNode(xsltdom);