Как я могу получить следующий код для добавления элемента с "xmlns = ''"?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string strXML =
"<myroot>" +
" <group3 xmlns='myGroup3SerializerStyle'>" +
" <firstname xmlns=''>Neal3</firstname>" +
" </group3>" +
"</myroot>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strXML);
XmlElement elem = xmlDoc.CreateElement(null, "lastname", null);
elem.InnerText = "New-Value";
string strXPath = "/myroot/*[local-name()='group3' and namespace-uri()='myGroup3SerializerStyle']/firstname";
XmlNode insertPoint = xmlDoc.SelectSingleNode(strXPath);
insertPoint.AppendChild(elem);
string resultOuter = xmlDoc.OuterXml;
Console.WriteLine("\n resultOuter=" + resultOuter);
Console.ReadLine();
}
}
}
Мой текущий выход:
resultOuter=<myroot><group3 xmlns="myGroup3SerializerStyle"><firstname xmlns=""
>Neal3<lastname>New-Value</lastname></firstname></group3></myroot>
Желаемый вывод:
resultOuter=<myroot><group3 xmlns="myGroup3SerializerStyle"><firstname xmlns=""
>Neal3<lastname xmlns="">New-Value</lastname></firstname></group3></myroot>
Для справки см. Похожие посты:
http://www.stylusstudio.com/ssdn/default.asp?fid=23 (сегодня)
.NET XmlSerializer to Element FormDefault = Неквалифицированный XML? (9 марта, подумал, что я это исправил, но сегодня укусил меня снова!)