Вот пример XML, который я получаю от веб-службы.
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly'>
<s:AttributeType name='NAME' rs:number='1'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='25'
rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='DESCRIPTION' rs:number='2' rs:nullable='true'
rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='80'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row NAME='JOE BLOW' DESCRIPTION='PROGRAMMER'/>
<z:row NAME='ANN SMITH' DESCRIPTION='FRONT DESK'/>
<z:row NAME='STEVE JOHNSON' DESCRIPTION='TESTER'/>
</rs:data>
</xml>
Я не уверен, как добраться до узла <rs:data>
.В конце концов я хочу перечислить каждый <z:row>
и получить атрибуты NAME
и DESCRPTION
.Веб-сервис возвращает это мне в виде строки, поэтому я загружаю строку в XMLDocument следующим образом:
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xmlString);
Теперь я не уверен, нужно ли мне использовать XmlNamespaceManager
для того, чтобы позвонить моемуxDoc
для импорта <s:Schema>
Я попытался выбрать один узел с XPath безуспешно из-за префикса rs.
XmlNode xNode = xDoc.SelectSingleNode("/rs:data");
Если есть ещенеобходима информация, пожалуйста, спросите.