xml + xsl 中获取 xpath 的问题
zjcxc 2007-06-10 01:53:27 本人在做一个数据处理的时候, 需要实现类似下面的一个处理:
有一个 xml, 类似下面的结构
<root>
<rr name="a">
<rrr>a1</rrr>
<rrr>a2</rrr>
<rrr>a3</rrr>
<rrr>a4</rrr>
</rr>
<rr name="b">
<rrr>b1</rrr>
<rrr>b2</rrr>
<rrr>b3</rrr>
<rrr>b4</rrr>
</rr>
</root>
需要写一个 xsl 文件, 将其显示为类似这样的效果:
- Libary: a
value: a1 (/root/rr[1]/rrr[1])
value: a2 (/root/rr[1]/rrr[2])
value: a3 (/root/rr[1]/rrr[3])
value: a4 (/root/rr[1]/rrr[4])
- Libary: b
value: b1 (/root/rr[2]/rrr[1])
value: b2 (/root/rr[2]/rrr[2])
value: b3 (/root/rr[2]/rrr[3])
value: b4 (/root/rr[2]/rrr[4])
----------------------------------------------
对于显示成如上格式来说, 用 xsl 可以很容易的实现, 但有如下两个需求不知道如何实现:
1. 对于 Libary, 需要可以实现折叠的效果, 即默认情况下, 是不 Value 数据的, 仅显示为:
+ Libary: a
+ Libary: b
只有单击 + 号才显示出 value 的数据
2. 对于每个 value, 其后面的: (/root/rr[2]/rrr[1])
这样的信息是该 value 对应于 xml 数据的 xpath, 通过这个 xpath, 可以唯一定位到这个 value. 并且需要显示为 value 的超链接接, 该超链接接的URL即为 xpath(即显示的时间, value 项中, 括号部分的值是为显示的, 仅仅是 value 各值上有一个超链接, 超链接的 URL 地址为 xpth(括号中显示的内容))
注: 因为需求的限制, 所以如果涉及到脚本, 则仅限 java 脚本, 而且是嵌入在 xsl 文件中的