44 lines
1.8 KiB
HTML
44 lines
1.8 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script src="xpath-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p>This tests that XPath expressions with prefixes work correctly.</p>
|
|
<div id="console"></div>
|
|
<script>
|
|
var xmlString = '<ns:foo xmlns:ns="http://www.example.org" xmlns:foo="urn:foobar"/>';
|
|
|
|
var doc = (new DOMParser()).parseFromString(xmlString, "text/xml");
|
|
var contextNode = doc.documentElement;
|
|
var nsResolver = document.createNSResolver(contextNode);
|
|
|
|
var expr = doc.createExpression("/ns:foo", nsResolver);
|
|
var result = expr.evaluate(contextNode, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
checkSnapshot("/ns:foo", result, [doc.documentElement]);
|
|
|
|
var expr = doc.createExpression("/ns:*", nsResolver);
|
|
var result = expr.evaluate(contextNode, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
checkSnapshot("/ns:*", result, [doc.documentElement]);
|
|
|
|
var expr = doc.createExpression("/foo:*", nsResolver);
|
|
var result = expr.evaluate(contextNode, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
checkSnapshot("/foo:*", result, []);
|
|
|
|
// Now try a resolver originating from the function
|
|
var namespaces = { xmpl: "http://www.example.org" };
|
|
var mapResolver = function(prefix) { return namespaces[prefix]; };
|
|
|
|
var expr = doc.createExpression("/xmpl:*", mapResolver);
|
|
var result = expr.evaluate(contextNode, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
checkSnapshot("/xmpl:*", result, [doc.documentElement]);
|
|
|
|
var evaluator = new XPathEvaluator();
|
|
var result = evaluator.evaluate("/xmpl:*", doc, mapResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
|
|
checkSnapshot("/xmpl:*", result, [doc.documentElement]);
|
|
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|