当前位置: 代码迷 >> C# >> 请教C#读取XML
  详细解决方案

请教C#读取XML

热度:105   发布时间:2016-05-05 04:11:18.0
讨教C#读取XML
目前通过调用WEBSERVICES从JAVA那边返回个XML格式字符串,
XML格式为
<?xml version="1.0" encoding="GBK"?>

-<root>


-<keyValue>


-<key>

<![CDATA[birthday]]>

</key>


-<value>

<![CDATA[1969-12-01]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[sex]]>

</key>


-<value>

<![CDATA[1]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[businessScope]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[businessLicenseNo]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[otCardType]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[businessContacter]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[initialPassword]]>

</key>


-<value>

<![CDATA[111111]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[registeredCapital]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[cardType]]>

</key>


-<value>

<![CDATA[1]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[ip]]>

</key>


-<value>

<![CDATA[36.18.35.99]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[organizationCode]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[taxRegistrationNo]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[vocation]]>

</key>


-<value>

<![CDATA[XX]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[enterpriseKind]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[ContacterPhoneNo]]>

</key>


-<value>

<![CDATA[13917852203]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[legalRepresentative]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[otCardNumber]]>

</key>


-<value>

<![CDATA[]]>

</value>

</keyValue>


-<keyValue>


-<key>

<![CDATA[cardNumber]]>

</key>


-<value>

<![CDATA[370223196912012773]]>

</value>

</keyValue>

</root>


我该如何获取
-<keyValue>


-<key>

<![CDATA[otCardNumber]]>

</key>


-<value>

<![CDATA[]]>

</value>

中VALUE节点中的值
我用xmldocument去解析的时候报出"缺少根元素"的错误,可事实上是有根元素的,所以不知道怎么办了,请指教
------解决思路----------------------
static void LoadKeyValueXml()
        {

            string xml = @"<?xml version=""1.0"" encoding=""GBK""?> 
<root>  
<keyValue>  
<key> <![CDATA[birthday]]> </key>  
<value> <![CDATA[1969-12-01]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[sex]]> </key>  
<value> <![CDATA[1]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[businessScope]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[businessLicenseNo]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[otCardType]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[businessContacter]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[initialPassword]]> </key>  
<value> <![CDATA[111111]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[registeredCapital]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[cardType]]> </key>  
<value> <![CDATA[1]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[ip]]> </key>  
<value> <![CDATA[36.18.35.99]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[organizationCode]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[taxRegistrationNo]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[vocation]]> </key>  
<value> <![CDATA[XX]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[enterpriseKind]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[ContacterPhoneNo]]> </key>  
<value> <![CDATA[13917852203]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[legalRepresentative]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[otCardNumber]]> </key>  
<value> <![CDATA[]]> </value> </keyValue>  
<keyValue>  
<key> <![CDATA[cardNumber]]> </key>  
<value> <![CDATA[370223196912012773]]> </value> </keyValue> </root>";
            XElement root = XElement.Parse(xml);
            List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
            foreach (var kvE in root.Elements("keyValue"))
            {
                KeyValuePair<string, string> kv = new KeyValuePair<string, string>(kvE.Element("key").Value, kvE.Element("value").Value);
                list.Add(kv);
            }
        }

这里用的是List包含,应该也可以用Dictionary包含
  相关解决方案