none
Добавить запись в XML файл RRS feed

  • Вопрос

  • <main>

    <examples>

      <example title=one>

        <subs>

            <sub/>

            <sub/>

            <sub/>

         </subs>

      </example>

      <example title=two>

        <subs>

            <sub/>

            <sub/>

            <sub/>

         </subs>

      </example>

    ...

    </examples>

    </main>

     

    Всем привет.

    Есть XML файл примерно такого вида. Как добавить запись внутри <subs>, который находится внутри  <example> со значением title, например, "two". 


    • Изменено d.mihaylichenko 21 ноября 2011 г. 13:58
    • Перемещено Abolmasov Dmitry 28 декабря 2011 г. 14:05 (От:Языки программирования)
    21 ноября 2011 г. 13:51

Ответы

  • > надо добавить еще один тег sub. Используется самая последняя версия .NET

     

    using System.Xml.Linq;
    using System.Xml.XPath;
    ...
    var xml = @"
    <main>
        <examples>
            <example title='one'>
                <subs>
                    <sub/>
                    <sub/>
                    <sub/>
                </subs>
            </example>
            <example title='two'>
                <subs>
                    <sub/>
                    <sub/>
                    <sub/>
                </subs>
            </example>
        </examples>
    </main>";
    var xe = XElement.Parse(xml);
    xe.XPathSelectElement("//example[@title='two']/subs").Add(new XElement("sub"));

    • Предложено в качестве ответа Malobukv 21 ноября 2011 г. 14:34
    • Помечено в качестве ответа Abolmasov Dmitry 14 декабря 2011 г. 13:39
    21 ноября 2011 г. 14:34

Все ответы

  • > Как добавить запись после тега <sub>, ...


    добавить тег можно с помощью XmlElement.AppendChild или XElement.Add
    какая версия .NET используется? надо добавить еще один тег sub?
    21 ноября 2011 г. 14:00
  • Да, надо добавить еще один тег sub.

    Используется самая последняя версия .NET

    21 ноября 2011 г. 14:03
  • > надо добавить еще один тег sub. Используется самая последняя версия .NET

     

    using System.Xml.Linq;
    using System.Xml.XPath;
    ...
    var xml = @"
    <main>
        <examples>
            <example title='one'>
                <subs>
                    <sub/>
                    <sub/>
                    <sub/>
                </subs>
            </example>
            <example title='two'>
                <subs>
                    <sub/>
                    <sub/>
                    <sub/>
                </subs>
            </example>
        </examples>
    </main>";
    var xe = XElement.Parse(xml);
    xe.XPathSelectElement("//example[@title='two']/subs").Add(new XElement("sub"));

    • Предложено в качестве ответа Malobukv 21 ноября 2011 г. 14:34
    • Помечено в качестве ответа Abolmasov Dmitry 14 декабря 2011 г. 13:39
    21 ноября 2011 г. 14:34