Как отобразить строку XML на странице ascx в сетке - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть объект, который извлек данные xml, хранящиеся в базе данных, скажем, dataset.xmlcontent. Я хочу отобразить весь xmlcontent в пользовательском интерфейсе, это строка, но из-за тегов xml, встроенных в данные, он не сможет анализировать данные.

Любой ввод, как мне поступить? ?

код в модели выбирает информацию здесь:

dataSet=orderRepo.GetOrderItemDatas().Where(o => orderItem.Contains(o.OrderItemId)).Select(o=>o).ToList();

dataSet.Xmlcontent содержит данные XML, сохраненные в виде строки, я пытаюсь отобразить это в коде пользовательского интерфейса

на странице ascx:

            <tr>
                <th class="ui-state-default">TN</th>
                <th class="ui-state-default">Provisioning Data</th>
            </tr>
            <%
    if (Model.orderdataExist)
    {
        foreach (SomeObject detail in Model.dataSet)
        {
            %>
            <tr >
                <td><%= detail.TN %></td>
                <td><%= detail.Xmlcontent.ToString() %></td>

            </tr>
            <%
        }
    }
            %>

        </table> 

выход для пользовательского интерфейса для этого:

XML содержимое в пользовательском интерфейсе

Как я могу разобрать этот XML контент для отображения в пользовательском интерфейсе ??

1 Ответ

0 голосов
/ 22 апреля 2020

Поместите в таблицу данных, и затем вы сможете привязать таблицу к своей странице

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            string xmlResponseFromDb =  "<?xml version=\"1.0\"?>" +
                                            "<Table>" +
                                               "<DataRow>" +
                                                    "<TN>6462308635</TN>" +
                                                    "<Provision_Data>6462308635services_options_cosmo_callrecordingasc840</Provision_Data>" +
                                               "</DataRow>" +
                                               "<DataRow>" +
                                                    "<TN>6462308635</TN>" +
                                                    "<Provision_Data>6462308635services_options_cosmo_callrecordingascspeechanalytics840</Provision_Data>" +
                                               "</DataRow>" +
                                            "</Table>";

            XDocument doc = XDocument.Parse(xmlResponseFromDb);

            DataTable dt = new DataTable();
            dt.Columns.Add("TN", typeof(string));
            dt.Columns.Add("Provision_Data", typeof(string));

            foreach (XElement row in doc.Descendants("DataRow"))
            {
                dt.Rows.Add(new object[] { (string)row.Element("TN"), (string)row.Element("Provision_Data") });
            }

        }
    }

}
...