XSL:XML文書を結果に名前空間の定義をエクスポートしないでください

StackOverflow https://stackoverflow.com/questions/857010

質問

私はいくつかのXMLファイルからデータを取得し、新しいXMLドキュメントにそれらを変換したいと思います。しかし、私は、XSLT名前空間の定義は、結果の文書で発生する必要はありません。

言い換えるます:

ソース:

<Namespace:Root xmlns:Namespace="http://www.something.com">

スタイルシートます:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:Namespace="http://www.something.com">

結果:

<resultRoot xmlns:Namespace="http://www.something.com">
<!--I don't want the Namespace definition above-->

私は、変換のためのmsxslを使用しています。

役に立ちましたか?

解決

あなたは、出力文書に名前空間接頭辞を発する避けるためにexclude-result-prefixes要素のxsl:stylesheet属性を使用することができます:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
         xmlns:prefix1="http://www.something.com"
         exclude-result-prefixes="prefix1">

</xsl:stylesheet>

空白で区切られ、それらを指定する出力文書から複数の名前空間を抑制します

exclude-result-prefixes="prefix1 prefix2 prefix3"

XSLT仕様でます:

  スタイルシートが唯一のソースツリーに対処する目的のために名前空間宣言を使用する場合、

、除外結果プレフィックス属性に接頭辞を指定すると、結果ツリーに余分名前空間宣言を避けることができます。

scroll top