У меня есть XML-файл, как ниже:Анализ XML с внутренними узлами?
<clients>
<client>
<id>YYYY</id>
<name>XXXX</name>
<desc>ZZZZ</desc>
<trade_info>
<tab_list>
<data>
<tab>book 123</tab>
</data>
<data>
<tab>cook 321</tab>
</data>
</tab_list>
<buy_price_rate>200</buy_price_rate>
</trade_info>
</client>
</clients>
мне нужно извлечь из него id, name, desc
и от внутреннего узла trade_info мне нужно data/tab, buy_price_rate
.
Так первоначально я думал об этом:
var query = from node in doc.Descendants("client")
select new
{
client = new
{
Id = node.Element("id").Value,
Name = node.Element("name").Value,
Desc = node.Element("desc").Value
},
trade = from n in node.Descendants("trade_info")
select new
{
Id = n.Element("tab_list").Element("data").Element("tab").Value,
Buy = n.Element("buy_price_rate").Value
}
};
foreach (var item in query)
{
writeXML.WriteStartElement("tradelist_template");
writeXML.WriteAttributeString("client_id", item.client.Id);
foreach (var trade in item.trade)
{
writeXML.WriteStartElement("tradelist");
writeXML.WriteAttributeString("item_id", trade.Id);
writeXML.WriteEndElement();
}
writeXML.WriteEndElement();
}
Но это не похоже на работу, и им не уверены в том, как отлаживать его.
С первой ошибки, которую я получил, Null Expection Я верю, что он может исходить от node.Descendants("trade_info")
, так как у некоторых клиентов нет trade_info.
Я также верю, есть некоторые пришедшие от:
Id = n.Element("tab_list").Element("data").Element("tab").Value,
Buy = n.Element("buy_price_rate").Value
Как иногда они не имеют элементы в списке или buy_price_rate.
- Как проверить в моем запросе кастрированный баран он является недействительным или не обеспечить его
- Является ли мой запрос в порядке, что я хочу?
- Что я должен изменить? Советы?
Мой документ - это XDocument doc = XDocument.Load (файл); `, вы отвечаете, кажется немного расплывчатым для меня, но спасибо. – Prix 2010-11-24 05:48:01
Если вы отправляете код или XML, ** пожалуйста ** выделите эти строки в текстовом редакторе и нажмите кнопку «код» (101 010) на панели инструментов редактора, чтобы красиво отформатировать и выделить синтаксис! – 2010-11-24 06:00:59