【发布时间】:2019-03-26 09:44:26
【问题描述】:
我有 XML,并想使用数组/数据表等符号来获取节点的值
<Response>
<Outcome>
<KeyValueOfstringOutcomepQnxSKQu>
<Key>Icon</Key>
<Value>
<DataType>System.String</DataType>
<Field>Icon</Field>
<Value>O</Value>
</Value>
</KeyValueOfstringOutcomepQnxSKQu>
<KeyValueOfstringOutcomepQnxSKQu>
<Key>IconDescription</Key>
<Value>
<DataType>System.String</DataType>
<Field>IconDescription</Field>
<Value>Old</Value>
</Value>
</KeyValueOfstringOutcomepQnxSKQu>
<KeyValueOfstringOutcomepQnxSKQu>
<Key>IconLongDescription</Key>
<Value>
<DataType>System.String</DataType>
<Field>IconLongDescription</Field>
<Value>Older</Value>
</Value>
</KeyValueOfstringOutcomepQnxSKQu>
</Outcome>
</Response>
我想做类似outcome.Key[IconDescription].Value 的操作来给我一个“旧”的值
【问题讨论】:
-
这是指什么语言?你做了哪些尝试?
-
使用 c#,我尝试将 XML 转换为数组以获取这样的数据,但失败了
-
您发布的不是表格或字典符号。这是特定于您的应用程序的东西。 XML 元素的名称不指定任何类型的行为。仅仅因为一个元素被命名为
Key和另一个Value并不意味着它们是表或字典的一部分。 -
发布您遇到问题的 C# 代码。
-
鉴于此 XML 的规则性,您可以将其反序列化为具体的类并编写代码将它们转换为您想要的形式。您也可以使用 Linq to XML 来加载字符串并对其进行转换。另一方面,这种模式相当浪费。数据类型之类的架构信息应该是 XSD 的一部分,而不是文档本身。
Icon、IconDescription等应该是属性或元素。