xslt如何在xml中找到我的位置?
所以,如果我有如下所示的xml,并且我是全职在节点中,那么我如何判断我是在EMPLOYEE中,而不是在contractor中?那么,我是否可以使用一个函数来返回ROOT/PERSON/EMPLOYEE之类的内容,向我显示从FULLTIME节点开始,父节点是ROOT、PERSON和EMPLOYEE?我似乎找不到任何能提供这一点的东西。我是xslt新手,因此我的无知可能是我无法找到所需内容的一大原因xslt如何在xml中找到我的位置?,xml,xslt,Xml,Xslt,所以,如果我有如下所示的xml,并且我是全职在节点中,那么我如何判断我是在EMPLOYEE中,而不是在contractor中?那么,我是否可以使用一个函数来返回ROOT/PERSON/EMPLOYEE之类的内容,向我显示从FULLTIME节点开始,父节点是ROOT、PERSON和EMPLOYEE?我似乎找不到任何能提供这一点的东西。我是xslt新手,因此我的无知可能是我无法找到所需内容的一大原因 <ROOT> <PERSON> <EMPLOYEE>
<ROOT>
<PERSON>
<EMPLOYEE>
<FULLTIME>
<NAME>Mike</NAME>
<LAST_NAME>Thompson</LAST_NAME>
<EMPLOYEE_ID>1</EMPLOYEE_ID>
</FULLTIME>
<PARTTIME />
</EMPLOYEE>
<CONTRACTOR>
<FULLTIME>
<NAME>Mike</NAME>
<LAST_NAME>Olsen</LAST_NAME>
<EMPLOYEE_ID>2</EMPLOYEE_ID>
</FULLTIME>
<PARTTIME />
</CONTRACTOR>
</PERSON>
</ROOT>
如有任何建议,将不胜感激
-S您可以使用XPath 1.0函数或使用名称空间从FULLTIME节点获取员工或承包商:
<xsl:value-of select="name(..)"/> <!-- Returns EMPLOYEE or CONTRACTOR -->
您可以使用XPath 1.0函数从FULLTIME节点获取员工或承包商,或者如果您正在使用名称空间:
<xsl:value-of select="name(..)"/> <!-- Returns EMPLOYEE or CONTRACTOR -->
祖先轴可用于通过树“查找”。您想做什么还不完全清楚,但您可以测试员工是否是您的祖先:
<xsl:if test="ancestor::EMPLOYEE" >
...
</xsl:if>
祖先轴可用于通过树“查找”。您想做什么还不完全清楚,但您可以测试员工是否是您的祖先:
<xsl:if test="ancestor::EMPLOYEE" >
...
</xsl:if>
您可以分别匹配员工/全职或承包商/全职:
<xsl:template match="EMPLOYEE/FULLTIME">
...
</xsl:template>
<xsl:template match="CONTRACTOR/FULLTIME">
...
</xsl:template>
然后在每一场比赛中,你们可以和全职员工和承包商做不同的事情
我认为,这是XSLT方式,而不是其他编程语言的过程思维。您可以分别匹配员工/全职或承包商/全职:
<xsl:template match="EMPLOYEE/FULLTIME">
...
</xsl:template>
<xsl:template match="CONTRACTOR/FULLTIME">
...
</xsl:template>
然后在每一场比赛中,你们可以和全职员工和承包商做不同的事情
我认为,这是XSLT方法,而不是其他编程语言的过程性思维。可以发布XSLT文件,它可能使答案更适合您的应用程序可以发布XSLT文件,它可能使答案更适合您的应用程序这就是我试图实现的目标,看看我在树中的位置。如果我在雇员手下,我想做x……如果我在承包商手下,我想做y。我将尝试祖先检查。这就是我试图完成的,就是查看我在树中的位置。如果我在雇员手下,我想做x……如果我在承包商手下,我想做y。我将尝试祖先检查。