【发布时间】:2015-06-20 13:22:55
【问题描述】:
作为一个 XML 初学者,我一直在努力解决这个问题,我得到的结果就是我必须使用的。我返回的 XML 如下:
<Response .... />
<Metric ... />
<stuff .... />
<Stuff .... Sname="On" Tag="Parameters: (@SID: dftdr.23423.s1.RT, @STYPE: X)" />
好吧,我正在尝试通过选择来获取我的输出,以说出参数和那里的 sid 值。所以它会在这个例子中显示,Parameters dtfdr.23423.s1.RT。我通过这样做完成了一半:
<xsl:value-of select="substring(/Response/Metric/Stuff[@Sname='On'][1]/@Tag, 1, 9)"/>
但我想不出一种方法来轻松解析 SID 并通过动态值获取其长度。我可以得到起始位置,但我似乎无法弄清楚“,”的简单 IndexOf 概念,或者是否有更好的方法来做到这一点。
这是基本 XML,它是处理的卡片,所以我无法更改它。
有没有更简单的方法可以写出隐藏的@SID 值?
非常感谢您的帮助,希望我解释得足够清楚。
【问题讨论】:
-
看看结合 substring-before() 和 substring-after()。
-
如果您使用的是 XSLT 2.0,您可以查看 tokenize() 或 replace()。