【问题标题】:XSL string parsing and getting value with a bid oddityXSL 字符串解析和以奇怪的出价获取价值
【发布时间】: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()。

标签: xml xslt


【解决方案1】:

试试这个表达式来解析出SID

<xsl:value-of select="substring-before(substring-after(/Response/Metric/Stuff[@Sname='On'][1]/@Tag, '@SID: '), ',')"/> 

【讨论】:

  • 这很好,感谢您的帮助,有点神秘,但看起来它正在工作。
猜你喜欢
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多