XSL:XML文書を結果に名前空間の定義をエクスポートしないでください
-
21-08-2019 - |
質問
私はいくつかの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仕様でます:
スタイルシートが唯一のソースツリーに対処する目的のために名前空間宣言を使用する場合、、除外結果プレフィックス属性に接頭辞を指定すると、結果ツリーに余分名前空間宣言を避けることができます。
他のヒント
DIVOの答えがすでに選択され、適切にそうしてます。
しかし、あなたは深く掘るに興味があるなら、<「あまりにも多くの名前空間を」チェックアウト/>「XSLTでの名前空間」の大人気のトピックに関する私の最高傑作でセクション。 (はい、それは冗談であることを意味しています。:-))
拡張元素プレフィックスを使用= "ネーム"
のように:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:datetime="http://exslt.org/dates-and-times"
xmlns:str="http://exslt.org/strings"
xmlns:exsl="http://exslt.org/common"
xmlns:uw="xalan://ru.sbtc.util.XSLUtil"
extension-element-prefixes="exsl str datetime uw"
version="1.0">
所属していません StackOverflow