ノード NADR_KOD の名前を NADR_KOD2 に変更し、残りの XML を変更せずにコピーする XSLT 変換があります。今日、属性を要素に変更する別の変換を追加したかったのですが (スタックで解決策を見つけました)、1 つの xslt でこれら 2 つの変換が機能しません...
SSISに「日付」属性をロードできないため、問題が発生しました。XML ソースは常に日付を null として返します。多分あなたはこの問題で私を助けることができますか?
XML の構造:
<DATA>
<ACCIDENT date="...">
<INFO>
<TEMP>
<NADR_KOD>
<NADR_KOD>Code</NADR_KOD>
</NADR_KOD>
</TEMP>
</INFO>
</ACCIDENT>
</DATA>
これが私が欲しかったものです:
<DATA>
<ACCIDENT>
<date>...</date>
<INFO>
<TEMP>
<NADR_KOD>
<NADR_KOD2>Code</NADR_KOD2>
</NADR_KOD>
</TEMP>
</INFO>
</ACCIDENT>
</DATA>
私はこれらのような同様の変換をいくつか持っています。これが私がこれを作った方法です:
<xsl:template match="ACCIDENT">
<!-- output a filter element -->
<xsl:element name="ACCIDENT">
<!-- add the name attribute, using the source name attribute value -->
<xsl:element name="date">
<xsl:value-of select="@date"/>
</xsl:element>
<!-- add the rest of attributes without change -->
<xsl:copy-of select="node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="NADR_KOD/NADR_KOD">
<NADR_KOD2>
<xsl:apply-templates select="@*|node()"/>
</NADR_KOD2>
</xsl:template>
このコードは NADR_KOD を NADR_KOD2 に変更しません。前もって感謝します...