【问题标题】:How to get readable xml from SQL Server database如何从 SQL Server 数据库中获取可读的 xml
【发布时间】:2015-04-25 12:33:51
【问题描述】:

如何从 SQL Server 数据库中获取可读的 xml 字符串?

这样我得到了xml字符串,然后将它设置为ExtJs textarea。但是文字不可读:

public string GetXml(string args)
{
    string exMsg = "";
    string result = "";
    StringBuilder xmlResult = new StringBuilder();

    Dictionary<string, object> parameters = _ser.Deserialize<Dictionary<string, object>>(args);
    string Id = parameters["Id"].ToString();

    try
    {
        System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection();

        cn.ConnectionString = "data source=(local);initial catalog=MethodSettings;User ID=sa;Password=sasa";

        cn.Open();

        System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
        cmd.Connection = cn;
        cmd.CommandText = string.Format("SELECT MethodArgs FROM  MethodSettings.dbo.MethodParameters  WHERE Id ={0}", Id);

        System.Xml.XmlReader xmlr = cmd.ExecuteXmlReader();

        xmlr.Read();

        if (xmlr != null)
        {
            xmlResult.AppendLine(xmlr.ReadOuterXml());
            result = xmlResult.ToString();
        }
    }
    catch (Exception ex)
    {
         exMsg = ex.Message;
    }

    return _ser.Serialize(result);
}

【问题讨论】:

  • 不可读”到底是什么意思?您能给出您希望看到的示例 XML 以及实际显示的内容吗?
  • 例如我得到:ToveJaniReminder这个周末别忘了我! 我想变成这样:link

标签: c# sql-server xml


【解决方案1】:

您可以使用XDocumentToString() 方法轻松获取格式化的XML 字符串,如果这是您真正想要的:

System.Xml.XmlReader xmlr = cmd.ExecuteXmlReader();
XDocument doc = XDocument.Load(xmlr);
doc.Load(xmlr);​

var result = doc.ToString();

【讨论】:

    【解决方案2】:

    试试这个

                System.Xml.XmlReader xmlr = cmd.ExecuteXmlReader();
                XmlDocument doc = new XmlDocument();
                doc.Load(xmlr);​

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 2014-03-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多