счастливого кодирования. Я могу группировать и суммировать с linq, но это немного по-другому. Я хочу сгруппировать элементы и собрать их один за другим. Я хочу группировать по TaxTypeCode и собирать значения TaxAmount. Извините, это такой длинный вопрос.
Мой xml
<Note>
<NoteLine>
<cbc:ID>1</cbc:ID>
<Quantity unitCode="C62">1.0000</Quantity>
<TaxTotal>
<cbc:TaxAmount currencyID="USD">201.00</cbc:TaxAmount>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">100.00</cbc:TaxAmount>
<cbc:Percent>25.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>0003</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">50.00</cbc:TaxAmount>
<cbc:Percent>10.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>9040</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">1.00</cbc:TaxAmount>
<cbc:Percent>1.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>0001</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">50.00</cbc:TaxAmount>
<cbc:Percent>10.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>8001</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
</TaxTotal>
</NoteLine>
<NoteLine>
<cbc:ID>2</cbc:ID>
<Quantity unitCode="C62">1.0000</Quantity>
<TaxTotal>
<cbc:TaxAmount currencyID="USD">460.00</cbc:TaxAmount>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">200.00</cbc:TaxAmount>
<cbc:Percent>20.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>0003</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">100.00</cbc:TaxAmount>
<cbc:Percent>10.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>9040</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">1000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">100.00</cbc:TaxAmount>
<cbc:Percent>10.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>8001</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
<TaxSubtotal>
<cbc:TaxableAmount currencyID="USD">600.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="USD">60.00</cbc:TaxAmount>
<cbc:Percent>10.00</cbc:Percent>
<TaxCategory>
<TaxScheme>
<cbc:TaxTypeCode>8001</cbc:TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
</TaxTotal>
</NoteLine>
</Note>
Тогда нам нужно что-то вроде этого. Итоговая такса, сумма налогообложения, сумма налога. Я думаю, что это возможно, но как я могу это сделать?
Результат, который я хочу
<TaxTotal>
<TaxAmount currencyID="USD">661.00</TaxAmount>
<TaxSubtotal>
<TaxableAmount currencyID="USD">1500.00</TaxableAmount>
<TaxAmount currencyID="USD">300.00</TaxAmount>
<Percent>25.00</Percent>
<TaxCategory>
<TaxScheme>
<TaxTypeCode>0003</TaxTypeCode>
</TaxScheme>
</TaxCategory>
</TaxSubtotal>
...
...
...
...
</TaxTotal>
У меня есть класс создания образца для сериализации xml.
using (StreamReader reader = new StreamReader(@"C:\Users\test.xml"))
{
XmlSerializer serializer = new XmlSerializer(typeof(Note));
Note obj = (Note)serializer.Deserialize(reader);
}
Но я все еще не могу этого сделать.