xslt在元素后添加处理指令
xslt add processing instruction after element
在下面XML:
<?xml version="1.0" encoding="utf8" ?>
<Output>
<Error>
<Status>0</Status>
<Details>No errors</Details>
</Error>
<Synopsis>
<Count>451</Count>
</Synopsis>
<BankAccounts>
<BankAccount AcctNo="103" CustName="Frank" BalanceAmount="" Inactive="N" NoOfAccounts="1" >
<Addresses>
<Address>ABC</Address>
<Address>XYZ</Address>
</Addresses>
</BankAccount>
<BankAccount AcctNo="101" CustName="Jane" BalanceAmount="10005" Inactive="N" NoOfAccounts="1" >
<Addresses>
<Address>LMN</Address>
<Address>QWE</Address>
</Addresses>
</BankAccount>
</BankAccounts>
</Output>
我想在 Synopsis 之后和 BankAccounts 之前添加处理指令:
<?xml-multiple BankAccount
?>
尝试使用以下 XSLT,但它在内部插入 PI 'BankAccounts'
我如何使用 XSLT 执行此操作?
<xsl:template match="BankAccounts">
<xsl:copy>
<xsl:processing-instruction name="xml-multiple">
BankAccount
</xsl:processing-instruction>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
如果你想让处理指令出现在BankAccounts
之前,那么在复制之前把它写到输出中BankAccounts
:
<xsl:template match="BankAccounts">
<xsl:processing-instruction name="xml-multiple">BankAccount</xsl:processing-instruction>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
在 XSLT 2.0 或更高版本中,您可以将其缩短为:
<xsl:template match="BankAccounts">
<xsl:processing-instruction name="xml-multiple">BankAccount</xsl:processing-instruction>
<xsl:next-match/>
</xsl:template>
(假设您有 身份转换 模板或等效模板)。
或者 - 在任何版本中 - 你可以简单地做:
<xsl:template match="BankAccounts">
<xsl:processing-instruction name="xml-multiple">BankAccount</xsl:processing-instruction>
<xsl:copy-of select="."/>
</xsl:template>
在下面XML:
<?xml version="1.0" encoding="utf8" ?>
<Output>
<Error>
<Status>0</Status>
<Details>No errors</Details>
</Error>
<Synopsis>
<Count>451</Count>
</Synopsis>
<BankAccounts>
<BankAccount AcctNo="103" CustName="Frank" BalanceAmount="" Inactive="N" NoOfAccounts="1" >
<Addresses>
<Address>ABC</Address>
<Address>XYZ</Address>
</Addresses>
</BankAccount>
<BankAccount AcctNo="101" CustName="Jane" BalanceAmount="10005" Inactive="N" NoOfAccounts="1" >
<Addresses>
<Address>LMN</Address>
<Address>QWE</Address>
</Addresses>
</BankAccount>
</BankAccounts>
</Output>
我想在 Synopsis 之后和 BankAccounts 之前添加处理指令:
<?xml-multiple BankAccount
?>
尝试使用以下 XSLT,但它在内部插入 PI 'BankAccounts' 我如何使用 XSLT 执行此操作?
<xsl:template match="BankAccounts">
<xsl:copy>
<xsl:processing-instruction name="xml-multiple">
BankAccount
</xsl:processing-instruction>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
如果你想让处理指令出现在BankAccounts
之前,那么在复制之前把它写到输出中BankAccounts
:
<xsl:template match="BankAccounts">
<xsl:processing-instruction name="xml-multiple">BankAccount</xsl:processing-instruction>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
在 XSLT 2.0 或更高版本中,您可以将其缩短为:
<xsl:template match="BankAccounts">
<xsl:processing-instruction name="xml-multiple">BankAccount</xsl:processing-instruction>
<xsl:next-match/>
</xsl:template>
(假设您有 身份转换 模板或等效模板)。
或者 - 在任何版本中 - 你可以简单地做:
<xsl:template match="BankAccounts">
<xsl:processing-instruction name="xml-multiple">BankAccount</xsl:processing-instruction>
<xsl:copy-of select="."/>
</xsl:template>