如何使用 XSLT 反转 XML 数据标签?
例如,下面的 XML 文件。
<person>
<name>John</name>
<id>1</id>
<name>Diane</name>
<id>2</id>
<name>Chris</name>
<id>3</id>
</person>
现在, 在 XSLT 中,如果我编码:
<xsl:template match="person">
<xsl:apply-templates/>
</xsl:template>
那么,在 HTML 文件中它将显示 John1Diane2Chris3。
但, 我需要以下输出: Diane2John1Chris3
我需要颠倒前 2 个数据标签的顺序。 下面是前 2 个标签,
<name>John</name>
<id>1</id>
<name>Diane</name>
<id>2</id>
大家有什么想法吗?
For example, below XML file.
<person>
<name>John</name>
<id>1</id>
<name>Diane</name>
<id>2</id>
<name>Chris</name>
<id>3</id>
</person>
Now,
In XSLT, If I code:
<xsl:template match="person">
<xsl:apply-templates/>
</xsl:template>
So, In HTML file It will display John1Diane2Chris3.
But,
I need following output:
Diane2John1Chris3
I need to reverse order of first 2 data tags.
Here below first 2 tags
<name>John</name>
<id>1</id>
<name>Diane</name>
<id>2</id>
Any Idea folks ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这假设总是有一个
name
和id
对。如果情况并非如此,解决方案将会更加复杂。This assumes there is always a
name
andid
pair. If that's not the case, solution will be more complex.这是针对一个非常具体的问题的非常具体的解决方案:
输出:
更一般的解决方案需要对问题进行更一般的描述。
Here's a very specific solution to a very specific problem:
Output:
A more general solution would require a more general description of the problem.
下面的代码将允许您控制要反转的第一个标签的数量,但我倾向于同意 lwburk 的观点,如果您确定您需要的只是反转两个第一个标签,那么它可能有点矫枉过正。
The code below will allow you to control how much of first tags you want to reverse but I tend to agree with lwburk that it might be overkill if you know for sure that all you need is just to inverse only two first tags.