我肯定错过了一些东西。我有一个存储 HTML 片段的 XML 文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<presentation>
<slide id="1" title="Test Slide 1">
<h1>This is test slide 1.</h1>
<p>Information on test slide.</p>
</slide>
<slide id="2" title="Test Slide 2">
<h2> This is test slide 2.</h2>
<p>Information on test slide.</p>
</slide>
<slide id="3" title="Test Slide 3">
<h3> This is test slide 3.</h3>
<p>Information on test slide.</p>
</slide>
</presentation>
我正在构建一个 ASP.net 表单,它允许我编辑“幻灯片”的内容,然后保存我的更改。为了做到这一点,首先我找到合适的幻灯片id
。然后我用 删除幻灯片的所有内容RemoveNodes()
,然后尝试用 编写新内容WriteRaw(contents)
。
XDocument xmlDoc = XDocument.Load(filepath);
XElement slide = xmlDoc.Descendants("slide").First(el => el.Attribute("id").Value.Equals(id));
slide.RemoveNodes();
using (var writer = slide.CreateWriter())
{
// contents are retrieved from a TextBox
writer.WriteRaw(contents);
}
xmlDoc.Save(filepath);
代码运行没有错误。但是,当我检查 xml 文件时,html 标记的<
and>
字符已转换为<
and >
。
...
<slide id="1" title="Test Slide 1"><h1>This is test slide 1.</h1>
<p>Information on test slide.</p>></slide>
...
我猜另一个对象正在逃避背景中的角色。SaveOptions.DisableFormatting
不会改变行为。谁能指出我正确的方向?