У меня такая же структура для многих XML-файлов в каталоге.
Я хочу написать один CSV-файл с необходимыми элементами.
Я совершенно новичок в этом мире, можете ли вы мне помочь, пожалуйста?мне нужен рекурсивный метод?
мне нужно прочитать, а не все
<DatiBeniServizi> // Descendants
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>AswArtFor</CodiceTipo> // <- i dont need this
<CodiceValore>312</CodiceValore> // <- i need only this
</CodiceArticolo>
<Descrizione>DELL LATITUDE E6440 CORE I5 4300 2.7 GHZ 8 GB RAM HD 320 DVD WIN 10 PRO GARANZIA 6 MESI</Descrizione>
<Quantita>5.00000000</Quantita>
<UnitaMisura>NR</UnitaMisura>
<PrezzoUnitario>180.00000000</PrezzoUnitario>
<PrezzoTotale>900.00000000</PrezzoTotale>
<AliquotaIVA>0.00</AliquotaIVA>
<Natura>N6</Natura>
</DettaglioLinee>
<DettaglioLinee>
<NumeroLinea>2</NumeroLinea>
<CodiceArticolo>
<CodiceTipo>AswArtFor</CodiceTipo> // <- i dont need this
<CodiceValore>499</CodiceValore> // <- i need only this
</CodiceArticolo>
<Descrizione>DELL OPTIPLEX 7010 TOWER i7-3770 3.40 GHz HD 250 GB RAM 4 GB GARANZIA 6 MESI</Descrizione>
<Quantita>3.00000000</Quantita>
<UnitaMisura>NR</UnitaMisura>
<PrezzoUnitario>160.00000000</PrezzoUnitario>
<PrezzoTotale>480.00000000</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
Я использую этот код, но я не могу прочитать дочерний
var results = xDocument.Descendants("DatiBeniServizi").Select(x => new {
Codice = (string)x.Element("CodiceValore"),
Descrizione = (string)x.Element("Descrizione"),
Quantita = (string)x.Element("Quantita"),
PrezzoUnitario = (string)x.Element("PrezzoUnitario"),
AliquotaIVA = (string)x.Element("AliquotaIVA")
}).ToList();
for (int i = 0; i < results.Count; i++)
{
string tempCodice = results[i].Codice;
string tempDescrizione = results[i].Descrizione;
string tempQuantita =results[i].Quantita;
string tempprezzoUnitario = results[i].PrezzoUnitario;
string tempAliquotaIVA = results[i].AliquotaIVA;
dataToBeWritten.Append(tempCodice);
dataToBeWritten.Append(";");
dataToBeWritten.Append(tempDescrizione);
dataToBeWritten.Append(";");
dataToBeWritten.Append(tempQuantita);
dataToBeWritten.Append(";");
dataToBeWritten.Append(tempprezzoUnitario);
dataToBeWritten.Append(";");
dataToBeWritten.Append(tempAliquotaIVA);
dataToBeWritten.Append(";");
dataToBeWritten.Append(0);
dataToBeWritten.Append(";");
dataToBeWritten.Append(0);
dataToBeWritten.Append(Environment.NewLine);
}
Console.WriteLine(dataToBeWritten.ToString());
Console.ReadLine();
var testpath = AppDomain.CurrentDomain.BaseDirectory + @"\test.csv";
File.WriteAllText(testpath, dataToBeWritten.ToString());
"Codice = (строка) x.Element ("CodiceValore"), "// <- я не могу прочитать это, я могу только читать </p>