由于未知原因,SEPA付款文件无法转换为线性xml。
我在下面使用了xml文件和样式表http://http://www.utilities-在线。信息/xsltransformation
结果xml ei为空。选择器
<xsl:template match="TxAmt/*">
必须在文件中找到mach,因此它应该返回一条记录。命名空间在XSL文件中定义。
如何修复?
XML:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>
<MsgId>8FE0A83C6506239E141E7CD197C0E588</MsgId>
<CreDtTm>2017-01-10T16:42:05.399+02:00</CreDtTm>
</GrpHdr>
<Ntfctn>
<Id>8FE0A83C6506239E141E7CD197C0E588</Id>
<CreDtTm>2017-01-10T16:42:05.399+02:00</CreDtTm>
<Acct>
<Id>
<IBAN>XX891010000007099224</IBAN>
</Id>
<Ccy>EUR</Ccy>
<Ownr>
<Nm>Test Ltd</Nm>
<PstlAdr>
<AdrLine>test</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>102167</Id>
<SchmeNm>
<Cd>COID</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Ownr>
<Svcr>
<FinInstnId>
<BIC>EEUHEE2X</BIC>
<Nm>Bank</Nm>
<PstlAdr>
<AdrLine>Test</AdrLine>
</PstlAdr>
</FinInstnId>
</Svcr>
</Acct>
<Ntry>
<Amt Ccy="EUR">2.50</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>BOOK</Sts>
<BookgDt>
<Dt>2017-01-10</Dt>
</BookgDt>
<ValDt>
<Dt>2017-01-10</Dt>
</ValDt>
<AcctSvcrRef>RO1433781673L02</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>BOOK</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<AcctSvcrRef>RO1433781673L02</AcctSvcrRef>
</Refs>
<AmtDtls>
<TxAmt>
<Amt Ccy="EUR">2.50</Amt>
</TxAmt>
</AmtDtls>
<RltdPties>
<Dbtr>
<Nm>EXPRESSLIIN</Nm>
<Id>
<OrgId>
<Othr>
<Id>6310130</Id>
<SchmeNm>
<Cd>COID</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>XX021010220208830224</IBAN>
</Id>
</DbtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BIC>DEUHEE2X</BIC>
<Nm>DEAS</Nm>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>Test3</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Ntfctn>
</BkToCstmrDbtCdtNtfctn>
</Document>
XSLT:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<xsl:output method="xml" version="1.0" encoding="UTF-8" standalone="yes"/>
<xsl:template match="/">
<xsl:element name="VFPData">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="TxAmt/*">
<xsl:element name="Document-BankCD">
<xsl:element name="SubFmlyCd">
<xsl:value-of select="../../../../../BkTxCd/Domn/Fmly/SubFmlyCd"/>
</xsl:element>
<xsl:element name="tasusumma">
<xsl:value-of select="../Amt"/>
</xsl:element>
<xsl:element name="raha">
<xsl:value-of select="../Amt/@Ccy"/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="text()">
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
进行以下更正:
>
向样式表添加标签。
将my:
准备到TxAmt/*
。从这一点开始,输出将至少包含空标签。
将my:
准备到XPaths中的每个其他标签名称。然后您将看到值。
出于可读性原因,我还将indent=“yes”添加到了输出标签。在最终版本中删除它。
下面您已经更正了XSLT。注意,模板匹配节点的简化程度较小。
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:my="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02"
>
<xsl:output method="xml" indent="yes" version="1.0" encoding="UTF-8" standalone="yes"/>
<xsl:template match="/">
<xsl:element name="VFPData">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="my:TxAmt/*">
<xsl:element name="Document-BankCD">
<xsl:element name="SubFmlyCd">
<xsl:value-of select="../../../../../my:BkTxCd/my:Domn/my:Fmly/my:SubFmlyCd"/>
</xsl:element>
<xsl:element name="tasusumma">
<xsl:value-of select="../my:Amt"/>
</xsl:element>
<xsl:element name="raha">
<xsl:value-of select="../my:Amt/@Ccy"/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="text()"/>
<xsl:template match="*">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
将http://xsltransform.net与您的XML一起使用,我得到了以下结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VFPData xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.02">
<Document-BankCD>
<SubFmlyCd>BOOK</SubFmlyCd>
<tasusumma>2.50</tasusumma>
<raha>EUR</raha>
</Document-BankCD>
</VFPData>
问题内容: 输入XML 输出Json 如何编写通用的xslt样式表,它将输入的xml转换为json 输入可能在根目录下有太多结果,在结果下可能有系统和名称,在系统下还有ID名称和值。 问题答案: 我从此处复制并粘贴的以下XSLT 应该可以帮助您将XML转换为JSON。谢谢 :)
本文向大家介绍Python将xml和xsl转换为html的方法,包括了Python将xml和xsl转换为html的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python将xml和xsl转换为html的方法。分享给大家供大家参考。具体分析如下: 这里需要用libxml2,所以还要先安装了libxml2模块才能使用。代码如下: 希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍Python实现把xml或xsl转换为html格式,包括了Python实现把xml或xsl转换为html格式的使用技巧和注意事项,需要的朋友参考一下 前些天用python处理xml的转换的一个小程序,用来把xml,xsl转换成html。 用的libxml2,所以还要先安装了libxml2模块才能使用。
作为一个简化的例子,考虑这个有两个字段的表。一个是字符串,另一个是XML。 Source=“MediaConversions” 现在我想查询该表,并将结果作为json,但也要一次性将XML转换为json。 导致 [{"Source":"媒体转换","OrderParameter":" 但我想把它转换成: [{"Source":"MediaConversion","OrderParameter":{
问题内容: 我有一个名为“ FechasFirmaHorometros”的视图,定义为 我有一个名为[RespuestaPreguntaHorometrosFecha]的函数定义为 在调试使用该函数的另一个存储过程时,我一直在碰到上述函数时收到此消息 但是我可以自由地做类似的事情 为什么会发生这种情况,我该如何解决或解决呢? 问题答案: 由于某种原因,我认为这是某种类型的字符串列。您应该解决该问题
问题内容: 当我打开JMeter仪表板时,我可以在列中看到成功,而在列中看到失败。根据城市词典 KO等于OK “ KO”等价于表示“ OK”的字母的含义和缩写 还是法国的非正式缩写? 我注意到,法语和意大利语非正式交流中的首字母缩写词KO意味着“不好” 我看到了有关将KO标签更改为失败的不同问题。 为什么JMeter将错误称为,在性能测试中还有其他含义吗?还是在积极思考失败也可以的地方? 问题答案