我从Web服务调用中获得了以下XML。
<Wireless xmlns="http://www.hikvision.com/ver10/XMLSchema">
<enabled>true</enabled>
<ssid>Network 1</ssid>
<WirelessSecurity>
<securityMode>WPA-personal</securityMode>
</WirelessSecurity>
<WPA>
<algorithmType>TKIP</algorithmType>
<sharedKey>asdfasdf</sharedKey>
<wpaKeyLength>13</wpaKeyLength>
</WPA>
<WEP>
<authenticationType>auto</authenticationType>
<defaultTransmitKeyIndex>224</defaultTransmitKeyIndex>
<EncryptionKeyList>
<encryptionKey>AScii</encryptionKey>
</EncryptionKeyList>
</WEP>
</Wireless>
我想通过它并填充一个对象,但我无法执行最基本的操作。我已经在名为document
的XDocument中成功解析了它。当我写声明时
var elem = document.Element("Wireless");// returns null
var elem = document.Element("ssid");// also returns null
var elem = document.Descendants("ssid");//produces empty enumeration
我在这里做错了什么?由于xml名称空间不同,是否存在问题?
答案 0 :(得分:2)
是的,问题与xml名称空间有关。
将名称空间声明为
XNamespace ns = "http://www.hikvision.com/ver10/XMLSchema";
并通过
获取元素 var elem = document.Element(ns + "Wireless");
var elems = document.Descendants(ns + "ssid");