如何处理“.xsl”中的字符串数组文件?
我在 .xsl 文件中有一个字符串数组,现在我必须以不同的方式使用由空格分隔的每个字符串。我怎样才能得到字符串?
我有以下字符串数组:
strarray="hw.oh.xml hg.hd.gnl th.ik.lkj"
我必须分别获取 "hw.oh.xml" 、 "hg.hd.gnl" 、 "th.ik.lkj" 字符串才能对其执行某些操作。
我怎样才能做到这一点?
I have an array of strings in .xsl file, now I have to use the each string separeted by spaces differently. How I can get the strings?
I have following array of strings:
strarray="hw.oh.xml hg.hd.gnl th.ik.lkj"
I have to get "hw.oh.xml" , "hg.hd.gnl" , "th.ik.lkj" strings separetaly to perform some operation on it.
How I can do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有很多方法可以做到这一点:
I.使用 XPath
substring-before()
和substring-after()
函数:当此转换应用于任何 XML 文档时(未使用) ,生成想要的结果(“数组”中的每个项目):
此方法很快就会变得极其复杂,除了仅包含 2-3 个项目的“数组”外,不推荐使用此方法。
二.在 XSLT 1.0 中将“数组”表示为 XML 文档:
当此转换应用于同一个 XML 文档(任何)时,会生成所需的正确结果:
我建议这种表示“数组”的方法——适用于 XSLT 1.0 应用程序。
三. XSLT 2.0 / XPath 2.0
简单地使用字符串序列:
结果:
更新:OP评论说他被困在空格分隔值的初始表示形式,包含在单个字符串中。
四.将空格分隔的值字符串转换为 XML 片段以方便使用。
此转换根据字符串创建一个 XML 片段,其中每个
元素仅包含一个字符串值。那么它的使用就像是一个数组一样。There are many ways to do this:
I. Using the XPath
substring-before()
andsubstring-after()
functions:when this transformation is applied on any XML document (not used), the wanted result (each item from the "array") is produced:
This method can quickly become overwhelmingly complex and is not recommended except for "arrays" of just 2-3 items.
II. Representing the "array" as an XML document in XSLT 1.0:
when this transformation is applied on the same XML document (any), the wanted correct result is produced:
I recommend this method of representing an "array" -- for XSLT 1.0 applications.
III. XSLT 2.0 / XPath 2.0
Simply use a sequence of strings:
Result:
UPDATE: The OP commented that he is stuck with the initial representation of space-separated values, contained in a single string.
IV. Convert the space-separated values string into an XML fragment for easy use.
This transformation creates an XML fragment from the string in which every
<item>
element contains just one of the string values. Then its use is just as if it were an array.