0

一部のノードが xsi:nil="true" 属性を持つように最近変更された XML ファイルがいくつかあります。XML を HTML にレンダリングしてデータを簡単に確認できる XSLT スタイル シートを用意しました。現在、作業を簡単にするために、スタイル シートを適用する前に、XML から名前空間を取り除きます。前回の更新までは問題なく機能していました。XSL が xsl:nil="true" の処理方法を認識していないため、エラーが発生します。

コードを簡単に更新できるので、XML を変換する前に、XML 内のすべての xsl:nil="true" の一致に対して置換/削除を行いますが、xsi: XML に名前空間が含まれていない場合でも、nil は無視され、変換の失敗は発生しません。サーバー上で変更を加えることができるので、この方法で物事を行うことを好みます。新しい Web ビルドを発行する必要がある場合は、デプロイするためにいくつかの内部フープをジャンプする必要があります。

(変換前または変換中に xsl:nil を削除することによって) 作業を開始したら、元に戻って名前空間を最初に削除した理由を突き止め、それを修正します。

あなたが私に与えることができるどんな助けにも感謝します.

4

1 に答える 1

2

そもそもなぜ名前空間を削除したのですか?XSLTを使用すると、出力に配置しないプレフィックスを制御できxsi:nil、スタイルシートでそれらを適切にスキップできます。

プレフィックスの名前空間プレフィックス宣言xsiがない場合、XMLは無効です。したがって、無効なXMLを処理しているか、XSI名前空間宣言がまだどこかにあり、XSLTを変更してそれらのエントリをスキップすることができます。

XMLソースで検索置換を行う場合は、後で(すぐに!)修正するようにしてください。この種のものは首を折ってしまうからです。

于 2010-02-01T19:36:14.470 に答える