Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSLT将模板应用于相同名称的不同节点_Xml_Templates_Xslt_Nodes_Apply - Fatal编程技术网

Xml XSLT将模板应用于相同名称的不同节点

Xml XSLT将模板应用于相同名称的不同节点,xml,templates,xslt,nodes,apply,Xml,Templates,Xslt,Nodes,Apply,如何将不同的模板应用于具有相同名称的不同子节点 我得到了一个无法更改的xml 用一个例子(真正的xml比这复杂得多)来简化一下,我想对员工和经理应用不同的模板,但他们的子节点都是“员工”。下面的xslt将不起作用,因为有两个员工模板 仅供参考,我是XSLT的新手,所以如果这个问题很容易解决,我向您道歉 提前谢谢!任何帮助都将不胜感激 XML 您可以在模板的匹配属性中指定父级 对于管理者来说 <xsl:template match="Managers/Employee"> 对于员

如何将不同的模板应用于具有相同名称的不同子节点

我得到了一个无法更改的xml

用一个例子(真正的xml比这复杂得多)来简化一下,我想对员工和经理应用不同的模板,但他们的子节点都是“员工”。下面的xslt将不起作用,因为有两个员工模板

仅供参考,我是XSLT的新手,所以如果这个问题很容易解决,我向您道歉

提前谢谢!任何帮助都将不胜感激

XML


您可以在模板的匹配属性中指定父级

对于管理者来说

<xsl:template match="Managers/Employee">

对于员工

<xsl:template match="Employees/Employee">

请注意,尽管在本例中不一定如此,但另一种选择是让我们使用“模式”


然后您可以这样编写模板匹配:

<xsl:template match="Employee" mode="Employees">

<xsl:template match="Employee" mode="Managers">

您可以在模板的匹配属性中指定父项

对于管理者来说

<xsl:template match="Managers/Employee">

对于员工

<xsl:template match="Employees/Employee">

请注意,尽管在本例中不一定如此,但另一种选择是让我们使用“模式”


然后您可以这样编写模板匹配:

<xsl:template match="Employee" mode="Employees">

<xsl:template match="Employee" mode="Managers">


太棒了!成功了。谢谢Tim C!使用该模式对我来说更好,而且更具可读性。再次感谢!伟大的成功了。谢谢Tim C!使用该模式对我来说更好,而且更具可读性。再次感谢!
<xsl:template match="Employee" mode="Employees">

<xsl:template match="Employee" mode="Managers">