XML содержит пространство имен http://www.wbf.org/xml/b2mml-v02
на узле корневого уровня <ProductionSchedule>
И вы используете /ProductionSchedule/ProductionRequest/ID
такого рода XPath, но эти пути не подходят для этого XML, и поэтому вы не можетеполучить любое желаемое значение.
Вам нужно использовать ниже XPath, чтобы получить идентификаторы всех <ProductionRequest>
узлов.
XmlNodeList xnList1 = xreader.SelectNodes("//*[name()='ProductionSchedule']/*[name()='ProductionRequest']/*[name()='ID']");
ИЛИ вы можете добавить пространство имен вручную, например
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xreader.NameTable);
nsmgr.AddNamespace("x", "http://www.wbf.org/xml/b2mml-v02");
XmlNodeList xnList1 = xreader.SelectNodes("//x:ProductionSchedule/x:ProductionRequest/x:ID", nsmgr);
И, наконец, вы можете прочитать id
из любой переменной выше xnList1
, например
foreach (XmlNode id in xnList1)
{
Console.WriteLine(id.InnerText);
}
Вывод: