设置 XML 叶节点的值
本文关键字:叶节点 XML 设置 | 更新日期: 2023-09-27 18:30:37
在 C# 中创建 XML 文档。 对于叶节点,我需要设置文本/值,如下所示:
<location>
<city>Denver</city>
<state>CO</state>
<country>United States</country>
</location>
- 当我在上面设置城市、州和国家/地区的值时,应该我正在使用InnerText还是InnerXml?
- 如果我需要,答案会改变吗对 5 个 XML 非法字符 (' " <> &) 进行 XML 编码System.Security.SecurityElement.Escape()?
- 如果节点的值包装在 CDATA 标记中,则执行更改我是使用InnerText还是InnerXml?
如注释中所建议的,如果可以的话,您应该使用 LINQ to XML。 下面是一些示例代码 - 任何 XML 编码都会自动处理。
var doc = XDocument.Parse(xml);
doc.Root.Element("city").Value = "London";
doc.Root.Element("state").Value = "Some value with & <> in";
doc.Root.Element("country").ReplaceNodes(new XCData("Some CDATA content with & <>"));
这将为您提供以下输出:
<location>
<city>London</city>
<state>Some value with & <> in</state>
<country><![CDATA[Some CDATA content with & <>]]></country>
</location>
您可以看到这个小提琴用于工作演示。
谢谢你们的回答。 我想我应该重新构建我的问题,因为我要求更多的最佳实践而不是实际做这项工作。 我想我从阅读MSDN中得到了答案。 我应该使用InnerText,因为不建议InnerXml进行写入操作。 此外,InnerText 将转义任何 XML 非法字符,而 InnerXml 需要有效的 XML。