我不知道为什么在我的输出结果中我在节点中找到了命名空间......:
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04 file://BE-FILE01/tverschu$/SR%20(Standards%20Release)/SR2013/ISO/Payments%20Clearing%20and%20settlement/SR2013_MX_Schemas_PaymentsClearingAndSettlement/pacs.008.001.04.xsd">
<FIToFICstmrCdtTrf>
<test xmlns:pacs="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04">BBBBIE2D</test>
<CdtTrfTxInf>
<PmtId>
<InstrId>BBBB/121109/-CBJ056/1</InstrId>
<EndToEndId>CROPS/SX-25T/2012-10-13</EndToEndId>
<TxId>AAAA/121109-CCT/EUR/443/1</TxId>
我的XSLT文件:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:pacs="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//pacs:GrpHdr[pacs:SttlmInf]">
<test>
<xsl:value-of select="pacs:InstgAgt/pacs:FinInstnId/pacs:BICFI[text()]" />
</test>
</xsl:template>
</xsl:stylesheet>
我的输入文件:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.04 file://BE-FILE01/tverschu$/SR%20(Standards%20Release)/SR2013/ISO/Payments%20Clearing%20and%20settlement/SR2013_MX_Schemas_PaymentsClearingAndSettlement/pacs.008.001.04.xsd">
<FIToFICstmrCdtTrf>
<GrpHdr>
<MsgId>BBBB/121109-CBJO56</MsgId>
<CreDtTm>2012-11-09T10:13:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<SttlmInf>
<SttlmMtd>CLRG</SttlmMtd>
<ClrSys>
<Prtry>CBJ</Prtry>
</ClrSys>
</SttlmInf>
<InstgAgt>
<FinInstnId>
<BICFI>BBBBIE2D</BICFI>
</FinInstnId>
</InstgAgt>
<InstdAgt>
<FinInstnId>
<BICFI>CCCCIE2D</BICFI>
</FinInstnId>
</InstdAgt>
</GrpHdr>
答案 0 :(得分:1)
您正在使用基于身份样式表的样式表。节点的默认处理是将它们复制到输出文档。命名空间声明就像任何其他节点一样;如果你不说要用它做其他事情,它就会被复制。 (如果复制需要该前缀的节点来表达其语义,也可以自动复制/重新创建。)
您可以使用XSLT的exclude-result-prefixes功能来有选择地抑制从未引用的名称空间声明......但要小心;如果在字符串中使用前缀(例如在XPath中),则可能会破坏文档。