Xml 需要XSLT示例吗

Xml 需要XSLT示例吗,xml,xslt-1.0,Xml,Xslt 1.0,我有一个xml需要创建带有自定义标记的xslt,需要获得一些示例,或者任何有关xslt的帮助都会很有帮助。 这是输入xml,我需要使用xslt将其分为两部分 输入: 声明及文件 MHS 美元 2. 宣称 050001741183100 0 美元 宣称 050001741179800 150 美元 期望输出: 声明及文件 MHS 2. 050001741183100 0 美元 050001741179800 150 美元 我当前的XLST: 我无法为每个索赔金额添加标签,任何帮助假

我有一个xml需要创建带有自定义标记的xslt,需要获得一些示例,或者任何有关xslt的帮助都会很有帮助。 这是输入xml,我需要使用xslt将其分为两部分

输入:

声明及文件 MHS 美元 2. 宣称 050001741183100 0 美元 宣称 050001741179800 150 美元

期望输出:

声明及文件
MHS
2.
050001741183100
0
美元
050001741179800
150
美元
我当前的XLST:


我无法为每个索赔金额添加标签,任何帮助

假设您输入的每个索赔的结构与示例中所示的结构完全相同,您可以这样做:

XSLT1.0

<?xml version="1.0" encoding="utf-8"?>
<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="/">
    <Doc1Statement_STG>
        <xsl:for-each select="XMLJRN/P">
            <StatementDocument>
                <xsl:value-of select="E[@name='Statement_Document']"/>
            </StatementDocument>
            <StatementIdentifier>
                <xsl:value-of select="E[@name='StatementIdentifier']"/>
            </StatementIdentifier>
            <ClaimCount>
                <xsl:value-of select="E[@name='ClaimCount']"/>
            </ClaimCount>
            <xsl:for-each select="E[@name='Claim']">
                <Doc1Claim_STG>
                    <ClaimNumber>
                        <xsl:value-of select="following-sibling::E[@name='ClaimNumber'][1]"/>
                    </ClaimNumber>
                    <AmountPaid>
                        <xsl:value-of select="following-sibling::E[@name='AmountPaid'][1]"/>
                    </AmountPaid>
                    <ClaimCurrencyCode>
                        <xsl:value-of select="following-sibling::E[@name='CurrencyCode'][1]"/>
                    </ClaimCurrencyCode>
                </Doc1Claim_STG>
            </xsl:for-each>
        </xsl:for-each>
    </Doc1Statement_STG>
</xsl:template>

</xsl:stylesheet>


到目前为止,您尝试了哪些XSLT,您在使用XSLT时遇到了哪些具体问题?我尝试了xsl 1.0,但我无法用一个xml将其划分为多个部分。--在一节中,我需要根据索赔数量插入docclaim_stg,在该组下,请不要在注释中发布代码,因为格式已丢失。你可以随心所欲地编辑自己的帖子(每篇帖子下都有一个“编辑”链接),一旦你获得了一定的声誉,你也可以建议编辑其他人的帖子。对不起。。这是我发布的第一篇帖子,我将在帖子中进行更改,感谢您提供的信息。没有神奇的方法可以将元素列表拆分为任意标记。你必须一个节点一个节点地做。非常好的Michael,非常感谢你。你节省了我一整天的时间。以前我正在使用,但无法获取该组下的项目。现在我得到了你的答案,我们可以选择使用“以下兄弟:……再次感谢迈克尔
<Doc1Statement_STG>
    <StatementDocument>Statement_Document</StatementDocument>
    <StatementIdentifier>MHS</StatementIdentifier>
    <ClaimCount>2</ClaimCount>
    <Doc1Claim_STG>
        <ClaimNumber>050001741183100</ClaimNumber>
        <AmountPaid>0.00</AmountPaid>
        <ClaimCurrencyCode>USD</ClaimCurrencyCode>
    </Doc1Claim_STG>
    <Doc1Claim_STG>
        <ClaimNumber>050001741179800</ClaimNumber>
        <AmountPaid>150.00</AmountPaid>
        <ClaimCurrencyCode>USD</ClaimCurrencyCode>
    </Doc1Claim_STG>
</Doc1Statement_STG>
<xsl:template match="XMLJRN/P">
 <xsl:apply-templates/> 
</xsl:template>

<xsl:template match="E"> 
 <Doc1Statement_STG>
  <xsl:element name="{@name}"> 
  <xsl:value-of select="."/> 
  </xsl:element> 
 </Doc1Statement_STG>
</xsl:template>
<?xml version="1.0" encoding="utf-8"?>
<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="/">
    <Doc1Statement_STG>
        <xsl:for-each select="XMLJRN/P">
            <StatementDocument>
                <xsl:value-of select="E[@name='Statement_Document']"/>
            </StatementDocument>
            <StatementIdentifier>
                <xsl:value-of select="E[@name='StatementIdentifier']"/>
            </StatementIdentifier>
            <ClaimCount>
                <xsl:value-of select="E[@name='ClaimCount']"/>
            </ClaimCount>
            <xsl:for-each select="E[@name='Claim']">
                <Doc1Claim_STG>
                    <ClaimNumber>
                        <xsl:value-of select="following-sibling::E[@name='ClaimNumber'][1]"/>
                    </ClaimNumber>
                    <AmountPaid>
                        <xsl:value-of select="following-sibling::E[@name='AmountPaid'][1]"/>
                    </AmountPaid>
                    <ClaimCurrencyCode>
                        <xsl:value-of select="following-sibling::E[@name='CurrencyCode'][1]"/>
                    </ClaimCurrencyCode>
                </Doc1Claim_STG>
            </xsl:for-each>
        </xsl:for-each>
    </Doc1Statement_STG>
</xsl:template>

</xsl:stylesheet>