У меня есть короткий вопрос, я хотел бы получить тип значения «SomeType» из XML-структуры, как это:Получить значение XML из XML-файла
<?xml version="1.0" encoding="utf-8"?>
<UniversalInterchange xmlns="http://www.cargowise.com/Schemas/Universal/2011/11" version="1.1">
<Header>
</Header>
<Body>
<UniversalShipment xmlns="http://www.cargowise.com/Schemas/Universal/2011/11" version="1.1">
<Shipment>
<DataContext>
<DataTargetCollection>
<DataTarget>
<Type>someType</Type>
</DataTarget>
</DataTargetCollection>
</DataContext>
<FileType>
<SecondType>not this type</SecondType>
</FileType>
</Shipment>
</UniversalShipment>
</Body>
</UniversalInterchange>
Я судимо его с большим количеством возможных решений, но ничего не дает мне тип
XmlDocument xml = new XmlDocument();
xml.LoadXml(myXmlString);
XmlNodeList xnList = xml.SelectNodes("/UniversalInterchange/Body/UniversalShipment/Shipment/DataContext/DataTargetCollection/DataTarget");
foreach (XmlNode xn in xnList)
{
string type = xn["Type"].InnerText;
Console.WriteLine("Name: {0} {1}", type);
}
Что-то не так?
Установили ли вы брейк-пойнт на строкового типа = х [ «Type»] InnerText; и проверил, какие у него свойства? – Matt
Да, это значение null, но XPath прав –
Нет, XPath не прав - он не использует правильные пространства имен. Лично я бы использовал LINQ to XML, что делает это тривиальным, но вы можете сделать это с помощью XPath, если вы действительно хотите ... –