我需要生成一个NodeList
来表示我Node
中给定Document
的整个子树(包括属性,注释和命名空间声明)。
我们假设我的文档看起来像这样:
<?xml version="1.0"?>
<my:root xmlns:my="http://www.my.com/#">
<my:element type="1">
<my:content green="true">
<xx:content xmlns:xx="http:://www.xx.com/#"/>
</my:content>
</my:element>
</my:root>
现在我想要的是选择包含该元素本身的所有子节点,以便我的结果选择代表子树
<my:element type="1">
<my:content green="true">
<xx:content xmlns:xx="http:://www.xx.com/#"/>
</my:content>
</my:element>
a)如果能够实现这一目标,例如type属性可以假设是唯一的?我目前正在使用像
这样的XPath表达式/descendant-or-self::node()[@type='1']/descendant-or-self::node()
有更好的方法吗?
b)在另一个场景中,我只是给出了明确的Node
引用,而不知道它们在DOM中的上下文,这意味着我无法使用任何描述特征巧妙地选择“锚节点” 。有没有办法从Node
引用派生一个XPath表达式来选择该特定节点的子树?或者是我在这种情况下通过迭代节点及其子节点手动生成NodeList
的唯一机会?