Задать вопрос
Ответы пользователя по тегу LINQ
  • Поиск последнего дочернего элемента и добавление следующего в xml-документе, ошибка в логике?

    @Ksenya23 Автор вопроса
    Хочу дополнить тему вопросом о namespace. Если нужно заменить атрибуты элемента manifest:
    <manifest   xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" 
                    xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2" 
                    xsi:schemaLocation="http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd 
                                                    [url]http://www.imsglobal.org/xsd/imsmd_rootv1p2p1[/url] imsmd_rootv1p2p1.xsd"
    >

    string text = System.IO.File.ReadAllText(@"C:\\Users\\Ксюша\\Desktop\\1_2\\11.xml");
                var xml = XDocument.Parse(text);
                var ns = xml.Root.GetDefaultNamespace();
     
                XNamespace xci = "http://www.w3.org/2001/XMLSchema-instance";
     
                string srt = "";
                string[] xciValue = new string[]{"http://www.imsproject.org/xsd/imscp_rootv1p1p2 imscp_rootv1p1p2.xsd", 
                                                    "http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd"};
                for (int i = 0; i < (xciValue.Count()); i++){
                    srt = srt + xciValue[i] + " ";
                }
                xml.Root.ReplaceAttributes( 
                         new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
                         new XAttribute(xci + "schemaLocation", srt)
                    );
    xml.Save("C:\\Users\\Ксюша\\Desktop\\1_2\\11.xml");

    - исходя из примера №2: msdn.microsoft.com/ru-ru/libr...v=vs.110).aspx
    Вместо этого получаем ошибку по строке: var xml = XDocument.Parse(text);
    Префикс "p1" необъявленный., строка 2, позиция 11.
    Ответ написан