再一次,我对XSLT所涉及的术语不太满意,但我会尽力解释我遇到的问题。
我有以下XML示例
<Company>
<Employee>
<FirstName>Tim</FirstName>
<LastName>Browne</LastName>
<Position>CEO</Position>
<Email>TBrowne@Infoteria.com</Email>
<Category>Officer</Category>
<Age>25</Age>
</Employee>
[More employees...
</Company>
我正在尝试按照他们的电子邮件域(&#39; @&#39;之后的内容)对上述数据进行排序。这是我试过的
<xsl:apply-templates select="Employee">
<xsl:sort select="substring-after('Email','@')"/>
</xsl:apply-templates>
基本上,您看不到的模板只是一个简单的&#34;在每个员工的表格中排成一行&#34;所以在那里看到的东西并不多。正如你在上面看到的那样,我的思考过程是,如果我可以在@之后对所有内容进行排序,那么我的解决方案就完成了。
输出模板的示例。
然而,这似乎打破了排序,因为它只是按时间顺序返回它们,它们出现在xml中(第一个雇员,然后是第二个等而不是被排序),我认为这意味着排序存在问题。
提前致谢!
答案 0 :(得分:2)
将<xsl:sort select="substring-after('Email','@')"/>
更改为<xsl:sort select="substring-after(Email,'@')"/>
。