Xml Root .add со специальным символом (:) - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть XML файл, который

<?xml version="1.0" encoding="utf-8"?>
<urlset >

</urlset>

Я пытаюсь добавить XElement со специальными символами (:) код позади

string xmlpath = @"~/myxml.xml";
string path = Server.MapPath(xmlpath);
string title="SomeString"
XDocument doc = XDocument.Load(path);
XElement root = new XElement("url");
root.Add(new XElement("Video:title", "title"));//here is the problem i have Special char (:) which not allowed
doc.Element("urlset").Add(root);

, также я могу ' t использовать & qoute; потому что это продолжение специального символа и, пожалуйста, мне нужна помощь, если кто-то может помочь, я был бы благодарен большое спасибо за ваше время, ребята, и большое спасибо за то, что нашли время прочитать мою очередь

1 Ответ

1 голос
/ 17 февраля 2020

Я пытаюсь добавить XElement со специальными символами (:) код позади

Попробуйте использовать XmlDocument, что позволит создать XmlElement с указанным именем и пространством имен .

 string xmlpath = @"~/myxml.xml";
 string path = Server.MapPath(xmlpath);
 XmlDocument doc = new XmlDocument();

 doc.Load(path);
 var mainRoot = doc.DocumentElement; //urlset element
 var urlRoot = doc.CreateElement("url"); //create url element
 urlRoot.AppendChild(doc.CreateElement("Video:title","title")); //add element to the url element
 mainRoot.AppendChild(urlRoot); // add this new element to the main root of urlset

Пример вывода:

<?xml version="1.0" encoding="utf-8"?>
<urlset>
  <url>
    <Video:title xmlns:Video="title" />
  </url>
</urlset>

Или, если вам нужен узел Video с пространством имен title ...

 urlRoot.AppendChild(doc.CreateElement("Video","title"));

Вывод этого выше:

<?xml version="1.0" encoding="utf-8"?>
<urlset>
  <url>
    <Video xmlns="title"/>
  </url>
</urlset>

Пожалуйста, дайте мне знать, если это не ваш ожидаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...