Как я могу создать webapi с вложенным xml из таблицы ssms? - PullRequest
0 голосов
/ 08 ноября 2018

Я сделал веб-API с C # и таблицей ssms.Результатом является XML с только элементами.

//This is only an example


 <?xml version="1.0" encoding="UTF-8"?>
    <note>
      <to>Tove</to>
      <from>Jani</from>
      <heading>Reminder</heading>
      <body>Don't forget me this weekend!</body>
    </note>

Как мне отформатировать xml как вложенный и добавить дополнительный заголовок из элемента таблицы ssms ??:

<?xml version="1.0" encoding="UTF-8"?>
    <note>
      <to>Tove</to>
       <example>
        <from>Jani
         <heading>Reminder</heading>
        </from>
        <body>Don't forget me this weekend!</body>
      </example>
    </note>

1 Ответ

0 голосов
/ 08 ноября 2018

Использовать xml linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication78
{
    class Program
    {

        static void Main(string[] args)
        {

            string xml = 
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                "<note>" +
                    "<to>Tove</to>" +
                    "<from>Jani</from>" +
                    "<heading>Reminder</heading>" +
                    "<body>Don't forget me this weekend!</body>" +
                "</note>";

            XDocument doc = XDocument.Parse(xml);

            XElement from = doc.Descendants("from").FirstOrDefault();
            XElement heading = doc.Descendants("heading").FirstOrDefault();
            XElement body = doc.Descendants("body").FirstOrDefault();

            from.Add(heading);

            XElement example = new XElement("example", new object[] {from,body});
            heading.Remove();
            body.Remove();
            from.ReplaceWith(example);


        }
    }
}

Если вы создаете с нуля

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication78
{
    class Program
    {

        static void Main(string[] args)
        {

            string ident = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><note></note>";

            XDocument doc = XDocument.Parse(ident);
            XElement note = doc.Root;

            note.Add(new XElement("to", "Tove"),
                new XElement("example", new object[] {
                    new XElement("from", new object[] {
                        "Jani", new XElement("heading", "Reminder")
                    }),
                    new XElement("body","Don't forget me this weekend!")
                })
            );

        }
    }
}
...