XmlElement
を別のものに挿入するためにXmlDocument
から1つを切り離したいと思います。しかし、これを行うと、名前空間を持つ子孫ノードには自動的にxmlns
属性が追加されます。何らかの理由で、ターゲットXMLファイルが、すべての子ネームスペースが設定されたカスタム検証に合格しません。子孫にxmlns
の伝播を控えるオプションがありますか?子どもへのxmlns伝搬を無効にする方法
次のコードは、問題を示している - あなたの目的はただelemntをコピーすることではありません<MakesMeSick:three xmlns:MakesMeSick="http://tempuri.org" />
using System.Xml;
class Program
{
static string xml = @"
<mydoc>
<one xmlns:MakesMeSick=""http://tempuri.org"">
<two>
<MakesMeSick:three />
</two>
</one>
</mydoc>
";
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
XmlNode n = doc.SelectSingleNode("/mydoc/one/two");
System.Console.WriteLine(n.InnerXml);
}
}
結果はどうなるでしょうか? ' '? –
svick
' ' –
Mike
これは整形式のXML文書ではありません。 – svick