Надеюсь, вы сможете помочь :-) Я застрял в попытке использовать LINQ для чтения XML-файла на C#.LINQ to XML с несколькими пространствами имен
Это XML структура:
<DataBase
xsi:schemaLocation="http://somestuff.new/xml http://somestuff.xsd"
xmlns:ns5="http://somestuff.new/ns5"
xmlns:ns3="http://somestuff.new/ns3"
xmlns:ns2="http://somestuff.new/ns2"
xmlns="http://somestuff.new/ns"
xmlns:xsi="http://somestuff.new/XMLScema-instance"
xmlns:ns4="http://somestuff.new/ns4">
<Cars>
<SmallCars attribute="Something">
<Id>licenceplate</Id>
<Parts attribute="All Parts">
<Extras>
<Gauges xmlns="http://somestuff.new/ns32>
<Speed>100</Speed>
<Rpm>3200</Rpm>
</Gauges>
</Extras>
</Parts>
</SmallCars>
</Cars>
</DataBase>
Я хочу прочитать значение из скорости и оборотов в минуту с помощью LINQ, но все, что я стараюсь, похоже, не ...
Это одна из моих попыток:
XNamespace ns3 = XNamespace.Get("http://somestuff.new/ns3");
from gaugeElement in extentionElement.Descendants(ns3 + "Gauges")
select new Gauge
{
Speed = tpxElement.Element(ns3 + "Speed") != null ? Convert.ToDouble(tpxElement.Element(ns3 + "Speed").Value) : 0.00,
Rpm = tpxElement.Element(ns3 + "Rpm") != null ? Convert.ToInt32(tpxElement.Element(ns3 + "Rpm").Value) : 0
}
Я использую класс Gauge, который должен свойствами:
public int Speed { get; set; }
public int Rpm { get; set; }
Я надеюсь, что один из вас умные ребята, можете дать мне пример о том, как получить эти ценности или объяснить, почему мои поиски значений не может :-)
Это работает! Могу ли я спросить, как я мог бы это сделать, если бы я сделал класс автомобилей, а затем сделал что-то вроде: var Cars = от автомобиля в xml. Потомки (ns + «Cars») выбрать новые запчасти { Дополнительно = (из extraElement в Parts.Descendants (ns3 + "Gauges"). Выберите (x => new {// Здесь вы используете новый калибр Speed = (double?) x.Element (ns3 + «Speed»)? ? 0, Rpm = (int?) X.Element (ns3 + "Rpm") 0 }) Возможно, я не могу заставить это работать? – Sasquatch
Извините за код в этом комментарии .. Я новичок в размещении здесь, поэтому я не уверен на 100%, как еще это сделать? :-) И кстати спасибо за вашу помощь до сих пор! :-) – Sasquatch
@Sasquatch: «Кажется, я не могу заставить это работать» на самом деле не так много говорит. Это звучит как другая проблема, поэтому вы должны задать новый вопрос, покажите, насколько далеко вы дошли, и что происходит. –