0
< &>をエスケープせずにCDATA文字列をXdmNodeに変換するにはどうすればよいですか?ここでSaxonでエスケープされていないCDATAセクションを出力する方法
は私の 'ToXdmNode' 関数です:
Processor processor = xxx.GetProcessor();
var builder = processor.NewDocumentBuilder();
builder.BaseUri = xxx.BaseUri;
var tr = new StringReader("<stuff><![CDATA[<blah>]]></stuff>");
var node = builder.Build(tr);
このコードは次のように見えますXdmNodeに
<stuff><![CDATA[<blah>]]></stuff>
変換します。これは後でとき、私に問題が発生し
<stuff><blah></stuff>
をOuterXmlを次のステップに送ります。
XdmNodeをエスケープ解除するにはどうすればよいですか?
<stuff><blah></stuff>
が、実際には変換しません:
私たちが使用しているシリアライザに問題があるようです。トランスフォームの出力がSaxon * Serializer *クラスを使用する場合、文字列は正しいです。トランスフォームがXdmNodeに出力され、続いて.net * XmlWriter *シリアライザを使用してシリアライズされると、上記の問題が発生します。 – Neil
絶対に。そのため、ディセーブル出力のエスケープは廃止されました。 XSLT変換エンジンとシリアライザが非常に密接に結合している場合にのみ動作するようにすることができます。 –
だから、あなたが言っているのは、私が変換中にシリアル化しても動作しますが、後で出力をシリアル化すれば動作しません。 – Neil