summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/xpath/nsresolver-object.xhtml
blob: e0acf9e74c6c5763103ffc1e5ae16e6df9c8277f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Namespace Resolver Test Case</title>
</head>
<body>
    <div id="result">FAILURE</div>
    <script type="text/javascript"><![CDATA[
    if (window.layoutTestController)
        layoutTestController.dumpAsText();

    function MyNSResolver() {}
    MyNSResolver.prototype.lookupNamespaceURI = function(prefix) {
        switch (prefix) {
            case "foo":
                return "http://www.example.com";
                break;
            default:
                return null;
                break;
        }
    }

    var sXml = "<root><ex:child xmlns:ex='http://www.example.com'>SUCCESS</ex:child></root>";
    var oXmlDom = (new DOMParser()).parseFromString(sXml, "text/xml");

    try {

        var oResult = oXmlDom.evaluate("foo:child/text()", oXmlDom.documentElement, new MyNSResolver, 
            XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

        document.getElementById("result").textContent = oResult.iterateNext().nodeValue;

    } catch (ex) {
        document.getElementById("result").textContent = ex;
    }
    ]]></script>

</body>
</html>