在 C# 中使用 SQL Server 2014 保存和检索 XML 数据
Posted
技术标签:
【中文标题】在 C# 中使用 SQL Server 2014 保存和检索 XML 数据【英文标题】:saving and retrieving XML data using SQL server 2014 in C# 【发布时间】:2016-03-16 06:38:46 【问题描述】:我的 XML 数据应该如下所示
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<XMLData>
<TUReportData><BureauResponse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RawData xmlns="https://secure.transunion.co.za/TUBureau" />
<ResponseStatus xmlns="https://secure.transunion.co.za/TUBureau">Success</ResponseStatus>
但不是你的代码将 < 和 > 转换为 &gt;
从数据库代码中检索 xml
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ICDBConnectionString"].ConnectionString);
conn.Open();
string SQL = "Select TUReportData from TUReport WHERE ConsumerID = @ConsumerID";
SqlCommand cmd = new SqlCommand(SQL, conn);
cmd.Parameters.Add(new SqlParameter("@ConsumerID", txtIDNumber.Text));
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
dt.TableName = "XMLData";
dt.ToString();
dt.WriteXml("C:/inetpub/wwwroot/TUWebServiceCaller/Log/temp.xml");
// Getting file path
string strXSLTFile = Server.MapPath("styles/style.xslt");
string strXMLFile = Server.MapPath("Log/temp.xml");
// Creating XSLCompiled object
XslCompiledTransform objXSLTransform = new XslCompiledTransform();
objXSLTransform.Load(strXSLTFile);
// Creating StringBuilder object to hold html data and creates TextWriter object to hold data from XslCompiled.Transform method
StringBuilder htmlOutput = new StringBuilder();
TextWriter htmlWriter = new StringWriter(htmlOutput);
// Creating XmlReader object to read XML content
XmlReader reader = XmlReader.Create(strXMLFile);
// Call Transform() method to create html string and write in TextWriter object.
objXSLTransform.Transform(reader, null, htmlWriter);
Results.InnerHtml = htmlOutput.ToString();
// Closing xmlreader object
reader.Close();
这是完整的代码,但问题是 xml 代码,我需要在传递标签之前将其转换为样式
【问题讨论】:
您的问题是什么?your code is converting
是什么意思?你的代码在哪里?
您是否从存储过程接收 xml?我通常做的就是把这个xml放到一个对象中。
我编辑了问题以获得代码
【参考方案1】:
当你保存它时,xml 被编码,所以当你把它带回来时运行。
string html = HttpUtility.HtmlDecode(encodedXMLString);
我不完全知道这里的问题是什么,但我希望这会有所帮助。
【讨论】:
我在上面的代码中将代码 sn-p 放在哪里 尝试将阅读器的每一行读入您的字符串生成器。你应该可以做 foreach(var line in reader.ReadLine()) htmlOutput.Append(line) 或者将Results.InnerHtml设置为HttpUtility.Html.Decode(htmlOutput) 所以 Results.InnerHtml = HttpUtility.HtmlDecode(htmlOutput)。我希望这有帮助。我最近在这个确切的问题上遇到了麻烦。以上是关于在 C# 中使用 SQL Server 2014 保存和检索 XML 数据的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 中的 tinyint 到 C# 中的字节
C# 中的日期时间与 SQL Server 中的 SQL 和 GETDATE()