Консультация № 183878
15.08.2011, 15:03
56.23 руб.
0 3 0
Здравствуйте! Прошу помощи в следующем вопросе:
Есть xml-документ. Не могу понять как его распарсить. Пробую так

XmlDocument doc = new XmlDocument();
string query =...;
doc.LoadXml(query);
XmlNodeList col_id0 = doc.SelectNodes("Query/Transfer/TransformInfo/Box/Value");

Но ничего не выбирается. Хотя вот эта строка работает
XmlNodeList col_id0 = doc.SelectNodes("Query/Transfer");

Подскажите как это можно реализовать? (пока что только через ChildNodes смог добраться до Value)


Приложение:
Visual studio 2010

<?xml version="1.0" encoding="windows-1251"?>
<Query Name="qrt" Type="134286">
<Objects>
<Item >
...
</Item>
</Objects>
<Transfer>
<Templates xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.adventure-works.com" />
<TransformInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.adatum.com/Info.xsd">
<Box AllowNullChild="true" Distinct="false" XPath="//Objects/Item[@CName='desk']">
<Value Type="System.String" Column="id">
<ExtendedProperties>
<KeyValuePair>
<Value>Name</Value>
<Key>Key</Key>
</KeyValuePair>
</ExtendedProperties>
</Value>
<Value>
</Value>
....
</Box>
</TransformInfo>
</Transfer>
</Query>

Обсуждение

Неизвестный
15.08.2011, 22:22
общий
Адресаты:
Как я понял дело в пространствах имен:
<TransformInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.adatum.com/Info.xsd">

Без них все работает.
давно
Специалист
742
345
16.08.2011, 06:00
общий
Мне нужно, чтобы работало с пространством имён. Как это можно правильно реализовать?
Неизвестный
16.08.2011, 18:22
общий
16.08.2011, 18:51
Адресаты:
Странно, работает если для пространства имен по умолчанию задать префикс.
Код:
<TransformInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:info="http://www.adatum.com/Info.xsd">
Форма ответа