xml - xpath高级语法困惑

标签 xml xslt xpath

<xsl:template name="makeDiv">   
    <xsl:when test="descendant::*[Parent][Name]">
    </xsl:when>  
</xsl:template>


在某处...

<xsl:if test="descendant::ParentCheck">
   <xsl:call-template name="makeDiv"/>
</xsl:if>


有人可以向我解释定义了什么template-name = makeDiv以及测试正在做什么吗?它是否在寻找Parent的后代的任何节点的属性'Name'和'ParentCheck'?

另外,<xsl:when test="not(descendant::*[SomeAttribute])">是什么意思?它是指不是SomeAttribute的其他子元素吗?

最佳答案

descendant:*[Parent][Name]表示“具有子“父代”元素和“名称”元素的任何后代。

i.e. <SomeElement>
         <Parent/>
         <Name/>
     <SomeElement>


descendant::ParentCheck表示“任何名为ParentCheck的后代”

i.e. <ParentCheck />

关于xml - xpath高级语法困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303998/

相关文章:

xml - 如何根据给定的文件名更新 XML 中的 <path>

android - 影响 TextView 的 Res/Arrays

c++ - 在 Xerces-C 中打印 XML 文档

java - 使用 findelements 时如何从 xpath 获取文本

python - 如何使用 Selenium 和 Python 3.7.4 从一系列复选框中找到特定复选框

xml - 在 Visual Studio 中使用 XSL 标记或拆分字符串

xslt - 节省内存的 XSLT 处理器

xslt - 在 XSLT 中使用 <= 和 >=

xslt - xsl 引用外部 xsl 文件

python-3.x - 如何点击被其他元素覆盖的链接? Python 3.6 和 Selenium