我想将所有名称/值对从C#中的XML文件加载到哈希表中。
注意,'value'部分可能包含HTML标记,因此它必须以某种方式逃避。这会在代码中完成,还是应该使用CDATA
?
<root><node name="node1">value</node><node name="node1">value2</node><root>
答案 0 :(得分:1)
是的,我会在CDATA中包装任何HTML,然后将这些选择为Dictionary<string,string>
将是微不足道的。
string xml = "<?xml version= '1.0'?><root><node name=\"node1\">value</node><node name=\"node2\">value2</node></root>";
var doc = XDocument.Parse( xml );
var dict = doc.Element("root")
.Elements( "node" )
.Select( e => new
{
Key = e.Attribute( "name" ).Value,
Value = e.Value
} )
.ToDictionary( k => k.Key, v => v.Value );
答案 1 :(得分:0)
您可以使用CDATA和/或转义HTML实体,即&lt;变得&lt;等
查看卓越的专家网站http://escapehtmlforxml.com/(!)