vksvpp Ответов: 1

Как удалить пространство имен xsd только в XML?


Привет,

пример кода,

<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="V1.0"></Root>


В этом случае мне нужно удалить пространство имен xsd.

Требуемый:

<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  Version="V1.0"></Root>


Я использую сериализацию.

Как добиться этого в c# ?

Спасибо

Что я уже пробовал:

 XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
//                ns.Add("xsd", "");
//                ns.Add("", "");


Если я дам префикс как пустой , то xsd и xsi оба пространства имен исчезнут.
если я даю префикс как xsd, он выдает исключение

F-ES Sitecore

Просто сделай веревочку.Замените на необработанный xml-файл и замените текст, который вы хотите удалить, на "". Однако я подозреваю, что вы пытаетесь решить неправильную проблему и пытаетесь избавиться от этого текста, а не заставить свой код работать с ним.

vksvpp

это необходимо при создании xml-кода

1 Ответов

Рейтинг:
0

Leo Chapiro

Вы можете просто разделить строку XML на пустую и удалить часть с помощью "xmlns:xsd":

string strXml = "<Root xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' Version='V1.0'></Root>";
string[] ar = strXml.Split(' ');
string strResult = string.Empty;
foreach (string str in ar)
{
   if (!str.Contains("xmlns:xsd"))
       strResult  += str + " ";
}