gpt4 book ai didi

c# - 如何使用 Linq to XML 将 HTML 保存在 XML 文件中?

转载 作者:太空狗 更新时间:2023-10-29 14:18:38 26 4
gpt4 key购买 nike

我正在尝试使用 Linq to XML 在 XML 文件和 Windows 窗体应用程序之间保存和检索一些 HTML。将其保存到 XML 文件时,HTML 标记会进行 xml 编码,并且不会保存为纯 HTML。

示例 HTML:

<P><FONT color=#004080><U>Sample HTML</U></FONT></P>

保存在 XML 文件中:

&lt;P&gt;&lt;FONT color=#004080&gt;&lt;U&gt;Sample HTML&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;

当我手动编辑 XML 文件并放入所需的 HTML 时,Linq 会提取 HTML 并正确显示它。

这是将 HTML 保存到 XML 文件的代码:

XElement currentReport = (from item in callReports.Descendants("callReport")
where (int)item.Element("localId") == myCallreports.LocalId
select item).FirstOrDefault();

currentReport.Element("studio").Value = myCallreports.Studio;
currentReport.Element("visitDate").Value = myCallreports.Visitdate.ToShortDateString();
// *** The next two XElements store the HTML
currentReport.Element("recomendations").Value = myCallreports.Comments;
currentReport.Element("reactions").Value = myCallreports.Ownerreaction;

我假设这是 xml 编码的 b/c,但我不确定如何处理它。 This question给了我一些线索……但没有答案(至少对我而言)。

感谢您的帮助,

奥兰

最佳答案

设置 Value 属性将自动对 html 字符串进行编码。这应该可以解决问题,但您需要确保您的 HTML 是有效的 XML (XHTML)。

currentReport.Element("recomendations").ReplaceNodes(XElement.Parse(myCallreports.Comments));

编辑:您可能需要将用户输入的 HTML 包装在 <div> </div> 中标签。 XElement.Parse期望找到至少具有开始和结束 xml 标记的字符串。所以,这可能会更好:

currentReport.Element("recomendations").ReplaceNodes(XElement.Parse("<div>" + myCallreports.Comments + "</div>"));

然后你只需要确保像<br>这样的标签正在作为 <br /> 发送.

编辑 2: 另一个选项是使用 XML CDATA .用 <![CDATA[ 包装 HTML和 ]]> ,但我从未实际使用过它,我不确定它如何影响读取 xml。

currentReport.Element("recomendations").ReplaceNodes(XElement.Parse("<![CDATA[" + myCallreports.Comments + "]]>"));

关于c# - 如何使用 Linq to XML 将 HTML 保存在 XML 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com