再说一次,我对XSLT涉及的术语不太满意,但是我将尽力解释我遇到的问题。
我有以下XML示例
<Company>
<Employee>
<FirstName>Tim</FirstName>
<LastName>Browne</LastName>
<Position>CEO</Position>
<Email>[email protected]</Email>
<Category>Officer</Category>
<Age>25</Age>
</Employee>
[More employees...
</Company>
我正在尝试按他们的电子邮件域(“ @”后面的内容)对上述数据进行排序。这是我尝试过的
<xsl:apply-templates select="Employee">
<xsl:sort select="substring-after('Email','@')"/>
</xsl:apply-templates>
基本上,您看不到的模板只是一个简单的“为每个员工在表中排成一行”,因此在那里看不到太多东西。如上所示,我的思考过程是,如果我可以对@之后的所有内容进行排序,那么我的解决方案将是完整的。
输出模板示例。
但是,这似乎破坏了排序,因为它只是将它们返回到按时间顺序排列的列表中,它们在xml中出现(第一个雇员,然后是第二个,而不是被排序),我认为这意味着排序存在问题。
提前致谢!
更改<xsl:sort select="substring-after('Email','@')"/>
为<xsl:sort select="substring-after(Email,'@')"/>
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句