如何获取 XML 元素的逗号分隔字符串值? [英] How to get comma-separated string values of XML elements?
本文介绍了如何获取 XML 元素的逗号分隔字符串值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人可以帮助以下要求以单个逗号分隔的字符串获取所有 XML 元素吗?
Can someone please help in the below requirement of fetching all the XML elements in a single comma separated string?
XML
<ClassNumbers>
<class>
10433
</class>
<class>
11980
</class>
<class>
13799
</class>
<class>
17392
</class>
<class>
11234
</class>
</ClassNumbers>
期望的输出:
10433,11980,13799,17392,11234
欢迎任何使用 XPATH/XSLT 解决此问题的建议.
Any suggestions in solving this with XPATH / XSLT are welcome.
推荐答案
XSLT 1.0 选项...
XSLT 1.0 option...
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="text()">
<xsl:value-of select="normalize-space()"/>
<xsl:if test="following::text()">,</xsl:if>
</xsl:template>
</xsl:stylesheet>
<小时>
根据评论编辑...
Edit based on comments...
XML 输入
<ListofCLassNbrs xmlns="getClassNumberData">
<ClassNumberData>
<ClassNumber>45</ClassNumber>
</ClassNumberData>
<ClassNumberData>
<ClassNumber>46</ClassNumber>
</ClassNumberData>
<ClassNumberData>
<ClassNumber>47</ClassNumber>
</ClassNumberData>
</ListofCLassNbrs>
XSLT 1.0
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<ClassNumberData>
<xsl:apply-templates/>
</ClassNumberData>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space()"/>
<xsl:if test="following::text()">,</xsl:if>
</xsl:template>
</xsl:stylesheet>
XML 输出
<ClassNumberData>45,46,47</ClassNumberData>
如果由于某种原因需要专门匹配ClassNumber
,则可以将命名空间绑定到前缀...
If for some reason you need to specifically match ClassNumber
, you can bind the namespace to a prefix...
<xsl:stylesheet version="1.0"
xmlns:x="getClassNumberData"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="x">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<ClassNumberData>
<xsl:apply-templates/>
</ClassNumberData>
</xsl:template>
<xsl:template match="x:ClassNumber">
<xsl:value-of select="normalize-space()"/>
<xsl:if test="following::text()">,</xsl:if>
</xsl:template>
</xsl:stylesheet>
这篇关于如何获取 XML 元素的逗号分隔字符串值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文