首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对DocumentFragment的XPath查询

针对DocumentFragment的XPath查询
EN

Stack Overflow用户
提问于 2013-08-10 04:46:43
回答 1查看 825关注 0票数 4

我需要在DocumentFragment上执行一些DOM操作,并且我正在尝试使用XPath来查找需要修改的节点。但是,我不知道如何让document.evaluate在片段上工作。我试过了

代码语言:javascript
复制
fragment.ownerDocument.evaluate(
    '//*',
    fragment.ownerDocument,
    null,
    XPathResult.ANY_TYPE,
    null
)

但这并不管用。

EN

回答 1

Stack Overflow用户

发布于 2013-11-08 18:25:16

如果需要对XML运行XPath,请使用svg作为临时元素,因为安全限制阻止对未附加到DOM的元素计算XPath表达式:

代码语言:javascript
复制
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>XPath Context</title>
<meta charset="utf-8">
</head>
<body>

<svg id="model" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"">
  <?foo bar?>
</svg>

<script type="text/javascript;version=1.7">
function $xpath(aXPath, aContext)
  {
    let nodes = [];
    aContext = document.getElementById("model") || doc;
    let results = document.evaluate(aXPath, aContext, null, XPathResult.ANY_TYPE, null);
    let node;

    while ((node = results.iterateNext())) {
      nodes.push(node);
    }

    return nodes;
  }
</script>
</body>
</html>

或者使用JavaScript实现。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18155388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档