使用XPathResult

Kdg*_*Dev 4 xpath

我在mozilla开发者网站上找到关于XPathResult的小文档.列出的所有功能都重定向到主页面,因此它们可能尚未记录.

var myFind;
myFind = document.evaluate(
    '/html/body/table[1]',
    document,
    null,
    XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
    null);
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来警告给定路径下的HTML树.

使用alert(myFind);不起作用,它只给出"XPathResult".它下面只有一个tbody和一堆tr元素,我希望看到它们都在一个警报中作为1个字符串.

myFind可以使用什么功能来做到这一点?

Mat*_*hen 5

var myFind;
myFind = document.evaluate(
    '/html/body/table[1]',
    document,
    null,
    XPathResult.FIRST_ORDERED_NODE_TYPE,
    null);

var node = myFind.singleNodeValue;
Run Code Online (Sandbox Code Playgroud)

我正在使用,FIRST_ORDERED_NODE_TYPE因为你只是在找一张桌子. singleNodeValue允许您提取节点.

现在node是一个常规的HTML DOM 节点.您可以像处理任何其他节点一样对其进行序列化,例如使用serializeToString:

new XMLSerializer().serializeToString(node)
Run Code Online (Sandbox Code Playgroud)

您可能会发现使用XPathXPathResult很有帮助.