Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法获取数据以转换Xml_Xml_Xslt - Fatal编程技术网

无法获取数据以转换Xml

无法获取数据以转换Xml,xml,xslt,Xml,Xslt,我需要转换以下xml: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <Document> <CstmrPmtStsRpt> <GrpHdr> <MsgId>DATIR0022G12345678100</MsgId> <CreDtTm>2013-07-18T06:00:01</CreDtTm> <InitgPty> <I

我需要转换以下xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Document>
<CstmrPmtStsRpt>
<GrpHdr>
<MsgId>DATIR0022G12345678100</MsgId>
<CreDtTm>2013-07-18T06:00:01</CreDtTm>
<InitgPty>
<Id>
<OrgId>
<BICorBEI>BICBICMMXXX</BICorBEI>
</OrgId>
</Id>
</InitgPty>
</GrpHdr>
</CstmrPmtStsRpt>
</Document>

DATIR0022G2345678100
2013-07-18T06:00:01
bicmxxx
要转换xml文件,我将使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
      <root>
      <xsl:for-each select="//GrpHdr">
        <tblGrpHdr1>
          <xsl:variable name="CurrentHeaderID" select="position()"/>
          <HeaderID>
            <xsl:value-of select="$CurrentHeaderID"/>
          </HeaderID>
          <MsgId>
            <xsl:value-of select="./MsgId"/>
          </MsgId>
          <CreDtTm>
            <xsl:value-of select="./CreDtTm"/>
          </CreDtTm>
          <BICorBEI>
            <xsl:value-of select="./InitgPty/Id/OrgId/BICorBEI"/>
          </BICorBEI>
        </tblGrpHdr1>
      </xsl:for-each>
      </root>
    </xsl:template>
</xsl:stylesheet>

当根元素为
时,代码工作正常,但当根元素为
时,代码不工作


我能做什么?

您需要在样式表中声明名称空间,为其分配前缀,并在寻址文档节点时使用前缀-例如(包括一些简化):


您需要在样式表中声明名称空间,为其分配前缀,并在寻址文档节点时使用前缀-例如(包括一些简化):


您需要在样式表中声明名称空间,为其分配前缀,并在寻址文档节点时使用前缀-例如(包括一些简化):


您需要在样式表中声明名称空间,为其分配前缀,并在寻址文档节点时使用前缀-例如(包括一些简化):



So的可能副本根元素是否始终包含此命名空间声明,或者您是否试图让一个样式表同时容纳这两种情况,或者是什么?@michael.hor257k的可能副本是的,当根元素具有命名空间声明文档xmlns时,我需要一个样式表=urn:iso:std:iso:20022:tech:xsd:pain.002.001.03“可能重复的,那么根元素是否始终包含此命名空间声明,或者您是否试图让一个样式表同时容纳这两种情况,或者是什么?可能重复的@michael.hor257k是的,当根元素具有命名空间声明文档xmlns时,我需要一个样式表=urn:iso:std:iso:20022:tech:xsd:pain.002.001.03“可能重复的,那么根元素是否始终包含此命名空间声明,或者您是否试图让一个样式表同时容纳这两种情况,或者是什么?可能重复的@michael.hor257k是的,当根元素具有命名空间声明文档xmlns时,我需要一个样式表=urn:iso:std:iso:20022:tech:xsd:pain.002.001.03“可能重复的,那么根元素是否始终包含此命名空间声明,或者您是否试图让一个样式表同时容纳这两种情况,或者是什么?可能重复的@michael.hor257k是的,当根元素具有命名空间声明文档xmlns时,我需要一个样式表=“urn:iso:std:iso:20022:tech:xsd:pain.002.001.03”
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:pain="urn:iso:std:iso:20022:tech:xsd:pain.002.001.03"
exclude-result-prefixes="pain">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/">
    <root>
        <xsl:for-each select="pain:Document/pain:CstmrPmtStsRpt/pain:GrpHdr">
            <tblGrpHdr1>
                <HeaderID>
                    <xsl:value-of select="position()"/>
                </HeaderID>
                <MsgId>
                    <xsl:value-of select="pain:MsgId"/>
                </MsgId>
                <CreDtTm>
                    <xsl:value-of select="pain:CreDtTm"/>
                </CreDtTm>
                <BICorBEI>
                    <xsl:value-of select="pain:InitgPty/pain:Id/pain:OrgId/pain:BICorBEI"/>
                </BICorBEI>
            </tblGrpHdr1>
        </xsl:for-each>
    </root>
</xsl:template>

</xsl:stylesheet>