Я хочу удалить '(одинарные кавычки) и # из файла XML. Мне нужно проверить все узлы XML. У меня уже есть шаблон XSLT, который выполняет другое извлечение данных. Поэтому я не могу создать другой шаблон в том же XSLT. Также я не хочу вызывать функцию перевода во всех узлах. Есть ли простой способ применить функцию перевода ко всем узлам? и могу ли я применить 2 шаблона в том же XSLT, где первый шаблон будет извлекаться, а второй шаблон будет переводить данные?
Кто-нибудь может мне помочь? Образец XML:
<Report>
<ResCountryCode>US</ResCountryCode>
<Reporting>
<TIN>
<TaxIDNo>12456-451</TaxIDNo>
<TINCountryCode>US</TINCountryCode>
</TIN>
<TIN>
<TaxIDNo>4454-8754-4</TaxIDNo>
<TINCountryCode>US</TINCountryCode>
</TIN>
<OrganizationName>AB'C Ca'r Limi#ted</OrganizationName>
....
....(other nodes with same ' and # character)
</Reporting>
</Report>
Пример XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
<xsl:template match="Report">
<Finance>
<Reporting>
<xsl:element name="ResCode">
<xsl:value-of select="ResCountryCode" />
</xsl:element>
<xsl:for-each select="Reporting/TIN">
<xsl:element name="TIN">
<xsl:attribute name="issuedBy">
<xsl:value-of select="TINCountryCode" />
</xsl:attribute>
<xsl:value-of select="TaxIDNo" />
</xsl:element>
</xsl:for-each>
<xsl:element name="Name">
<xsl:value-of select="Reporting/OrganizationName" />
</xsl:element>
</Reporting>
</Finance>
</xsl:template>
Выход:
<Report>
<Finance>
<ResCountryCode>US</ResCountryCode>
<Reporting>
<sfa:TIN issuedBy="US">12456-451</sfa:TIN>
<sfa:TIN issuedBy="US">4454-8754-4</sfa:TIN>
<Name>AB'C Ca'r Limi#ted</Name>
....
....
</Reporting>
</Finance>
</Report>
Ожидаемый выход:
<Report>
<Finance>
<ResCountryCode>US</ResCountryCode>
<Reporting>
<sfa:TIN issuedBy="US">12456-451</sfa:TIN>
<sfa:TIN issuedBy="US">4454-8754-4</sfa:TIN>
<Name>ABC Car Limited</Name>
....
....(with out ' and #)
</Reporting>
</Finance>
</Report>