【问题标题】:Get all the values of an element in the incoming XML获取传入 XML 中元素的所有值
【发布时间】:2021-09-11 08:32:00
【问题描述】:

美好的一天! 如何遍历传入的文本并获取“Call”元素的所有值

IN:
<text:One>
   <text:Collections>
     <text:Call>
        <text:Name>TEST1</text:Name>
     </text:Call>
     <text:Call>
        <text:Name>TEST2</text:Name>
     </text:Call>
  </text:Collections>
</text:One>

如何获取输出(使用 X-Path):

OUT:
...
<string name="Call" value "TEST1,TEST2"/>
...

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我愿意:........ ... 但我只得到
  • 您的输入不是格式良好的 XML 文档:如果不绑定到命名空间,您将无法使用前缀。

标签: xml xslt xsd xml-parsing xslt-1.0


【解决方案1】:

考虑这个简化的示例:

XML

<One>
   <Collections>
     <Call>
        <Name>TEST1</Name>
     </Call>
     <Call>
        <Name>TEST2</Name>
     </Call>
  </Collections>
</One>

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>

<xsl:template match="/One">
    <string name="Call">
        <xsl:attribute name="value">
            <xsl:for-each select="Collections/Call">
                <xsl:value-of select="Name"/>
                <xsl:if test="position()!=last()">,</xsl:if>
            </xsl:for-each>
        </xsl:attribute>
    </string>
</xsl:template>

</xsl:stylesheet>

结果

<?xml version="1.0" encoding="utf-8"?>
<string name="Call" value="TEST1,TEST2"/>

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多