2017-12-28 35 views
1

私は入力ファイルに異なる名前空間が付いています。しかし、私の必要条件として、1 xsltで処理する必要があります。XSLTのネームスペースを無視する

入力ファイル1:

<header xmlns="urn:xyz:hello"> 
     <body> 
      <element1>hi</element1> 
      <element2>sen</element2> 
     </body> 
    </header> 

入力ファイル2:上記のサンプルと同様に

<header xmlns="urn:abc:hello1"> 
    <body> 
     <element1>hi</element1> 
     <element2>sam</element2> 
    </body> 
</header> 

、私はどのように行うurn:cdf:well, urn:cdf:hello, ....

異なる名前空間を使用してファイルを取得します私はこれを1 xsltで処理しますか?

あなたのアドバイスは大歓迎です。

おかげ セン代わりは、以下のテンプレートを使用しアイデンティティテンプレートの

+0

「処理する必要がある」とはどういう意味ですか。ネームスペースを単に削除したいのですか、あるいは実際にはXMLを変換しますが、ネームスペースは使用されていても保持しますか?それぞれのケースで期待される成果を示したら助けになります。ありがとうございました。 –

答えて

1

、 は、任意の名前空間を「削除します」。

<xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:element> 
</xsl:template> 

<xsl:template match="@*"> 
    <xsl:attribute name="{local-name()}"> 
    <xsl:value-of select="."/> 
    </xsl:attribute> 
</xsl:template> 
+0

こんにちは、私はxsltで上記のテンプレートを追加しようとしました。しかし、出力はnullです! – Sen

+0

おそらくあなたのスクリプトには他のより特定のテンプレートがあり、それらは(実行されずに)実行されます。これらの(私の)テンプレートだけで始まり、 "古い"テンプレートを1つずつ追加してください。たぶんこれらの(古い)テンプレートは、名前空間の省略に関する私のソリューションを採用する必要があります。テンプレートに* apply-templates *が含まれていますか? –

関連する問題