ノード(文字列形式)をXElementにロードしようとしています。これは十分に簡単なはずですが、私はいくつかの問題を見つけています:
- ロードしようとしているノードには、いくつかのサブノードに名前空間参照が含まれています
- 使用しようとしたとき、
XElement.Load()
またはXelement.Parse()
予期された未定義の名前空間エラーが発生したとき
解決策は、名前空間定義を使用して周囲のノードを作成し、すべてをロードすることですが、文字列操作を含まない、より洗練された解決策があるかどうか疑問に思いました。
これが私の失敗した試みです:(
名前空間属性のコレクションがあります:
private readonly List<XAttribute> _namespaces;
これはすでに入力されており、必要なすべての名前空間が含まれています。したがって、XML文字列を別のノードに埋め込むために、これを実行していました。
var temp = new XElement("root", (from ns in _namespaces select ns), MyXMLString);
しかし、私も予想したように、MyXMLStringのコンテンツはエスケープされ、テキストノードになります。私が得る結果は次のようなものです:
<root xmlns:mynamespace="http://mynamespace.com"><mynamespace:node>node text</node></root>
そして私が探している結果は次のとおりです。
<root xmlns:mynamespace="http://mynamespace.com">
<mynamespace:node>node text</node>
</root>
これを行うためのきちんとした方法はありますか?
前もって感謝します