0
Ich habe folgendes XML-Format: -Serialize XML ohne Tag-Namen
<?xml version="1.0"?>
<Price xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<amount>
<currency>USD</currency>
100
</amount>
<amount>
<currency>EUR</currency>
50
</amount>
</Price>
den XML-Wert enthält den Betrag in der XML-Wurzel. Darf ich wissen, wie kann ich den Wert von 100 & 50 serialisieren?
[Serializable]
[XmlRoot("amount")]
public sealed class amount
{
[XmlElement("currency")]
public string currency{ get; set; }
}
class Program
{
static void Main(string[] args)
{
var list = new List<amount> {new amount() {Description = "USD"}, new amount() {Description = "EUR"}};
var serializer = new XmlSerializer(typeof(List<amount>), new XmlRootAttribute("Price"));
var ms = new MemoryStream();
serializer.Serialize(ms, list);
ms.Position = 0;
var result = new StreamReader(ms).ReadToEnd();
}
}
Sie verwenden sollten, [ 'XmlConvert.ToDecimal()'] (https://msdn.microsoft.com/en-us/library/system.xml .xmlconvert.todecimal (v = vs.110) .aspx) und ['XmlConvert.Tostring()'] (https://msdn.microsoft.com/en-us/library/system.xml.xmlconvert.tostring (v = vs.110) .aspx) (oder die entsprechende 'ToInt32()' Methode), um Kultur korrekt zu ignorieren und in einem invarianten Format zu analysieren. – dbc
@dbc Ja, klar wäre es formal besser. – xanatos