我们可以使用它的子元素名称来匹配父节点吗?
Can we match a parent node using it's child element name?
我想使用它的子元素名称来匹配父节点。
示例:
<parent><child1>text</child1></parent>
这里我想匹配父元素,但我不知道父标签名称,但我知道它是子元素名称。所以我需要对父标签执行转换,这就是为什么我需要使用它的子元素名称来匹配父标签。而且如果子标签的父标签是根,那么我不想执行任何转换。
为了更清楚,我需要匹配类似 <xsl:template match="[ancestor::contentblock]"> or <xsl:template match="[parent::contentblock]">
的内容,但 xslt 不允许这样做。
试试这样的东西:
//*/*[child1]
如果在 xsl:template 匹配中使用 xpath,您可以省略 //
。
match="*/*[child1]"
编辑
这应该是您正在寻找的更多内容:
match="*[parent::*][.//child1]"
这匹配任何具有父元素和后代 child1
元素的元素。
我想使用它的子元素名称来匹配父节点。 示例:
<parent><child1>text</child1></parent>
这里我想匹配父元素,但我不知道父标签名称,但我知道它是子元素名称。所以我需要对父标签执行转换,这就是为什么我需要使用它的子元素名称来匹配父标签。而且如果子标签的父标签是根,那么我不想执行任何转换。
为了更清楚,我需要匹配类似 <xsl:template match="[ancestor::contentblock]"> or <xsl:template match="[parent::contentblock]">
的内容,但 xslt 不允许这样做。
试试这样的东西:
//*/*[child1]
如果在 xsl:template 匹配中使用 xpath,您可以省略 //
。
match="*/*[child1]"
编辑
这应该是您正在寻找的更多内容:
match="*[parent::*][.//child1]"
这匹配任何具有父元素和后代 child1
元素的元素。