Как Вы создали бы этот xml в c#

Основной объект JavaScript является ассоциативным массивом, таким образом, он может легко использоваться для хранения пар ключ/значение. Так с помощью JSON, Вы могли создать объект для каждой строки, которая будет локализована как это:

var localizedStrings={
    confirmMessage:{
        'en/US':'Are you sure?',
        'fr/FR':'Est-ce que vous êtes certain?',
        ...
    },

    ...
}

Тогда Вы могли получить версию локали каждой строки как это:

var locale='en/US';
var confirm=localizedStrings['confirmMessage'][locale];

5
задан mrblah 24 November 2009 в 12:26
поделиться

6 ответов

Поскольку взят XDocument , вот ответ XmlWriter :

    StringWriter sw = new StringWriter();
    using (XmlWriter xw = XmlWriter.Create(sw)) {
        xw.WriteStartElement("order");
        xw.WriteElementString("user", "2343");
        xw.WriteElementString("creditcardtype", "2333");
        xw.WriteElementString("country", "USA");
        xw.WriteStartElement("orderDetails");
        xw.WriteElementString("amount", "23434");
        xw.WriteElementString("shipping", "32");
        xw.WriteEndElement();
        xw.WriteEndElement();
    }
    string s = sw.ToString();

Или с XmlSerializer :

[XmlRoot("order")] public class Order {
    [XmlElement("user")] public int User { get; set; }
    [XmlElement("creditcardtype")] public int CreditCardType { get; set; }
    [XmlElement("country")] public string Country { get; set; }
    [XmlElement("orderDetails")] public OrderDetails Details { get; set; }
}
public class OrderDetails {
    [XmlElement("amount")] public int Amount { get; set; }
    [XmlElement("shipping")] public int Shipping { get; set; }
}
....
var order = new Order {
    User = 2343, CreditCardType = 2333, Country = "USA",
    Details = new OrderDetails {
        Amount = 23434,
        Shipping = 32
    }
};
XmlSerializer ser = new XmlSerializer(order.GetType());
StringWriter sw = new StringWriter();
ser.Serialize(sw, order);
string s = sw.ToString();
11
ответ дан 18 December 2019 в 05:49
поделиться

использовать класс XDocument, поэтому код будет похож на

XDocument srcTree = new XDocument(
    new XElement("order",
        new XElement("user", "2343"),
        new XElement("creditcardtype", "2333"),
        new XElement("country", "USA"),
        new XElement("orderDetails",
            new XElement ("amount", "23434"),
            new XElement ("shipping", "32")

        )
    )
);
11
ответ дан 18 December 2019 в 05:49
поделиться

см. LINQ to XMl способ сделать это, примерно так

XDocument doc = new XDocument(new XElement("order",
                   new XElement("user", "2343"),
                   new XElement("creditcardtype", "2333"),
                   new XElement("country", "USA"),
               new XElement("orderDetails",
                   new XElement("amount", "23434"),
                   new XElement("shipping", "32"))));
doc.Save("myxml.xml");
4
ответ дан 18 December 2019 в 05:49
поделиться
XmlDocument xml = new XmlDocument();

XmlElement order = xml.CreateElement("order");

xml.AppendChild(order);

XmlElement user = xml.CreateElement("user");
user.InnerText = "2343";
order.AppendChild(user);

XmlElement ccType = xml.CreateElement("creditcardtype");
ccType.InnerText = "2333";
order.AppendChild(ccType);

и т. Д.

2
ответ дан 18 December 2019 в 05:49
поделиться

Я бы пошел с предложениями Linq to XML, но для полноты картины мне просто нужно добавить следующее:

var xe = XElement.Parse("<order><user>2343</user><creditcardtype>2333</creditcarttype><country>USA</country><orderDetails><amount>23434</amount><shipping>32</shipping></orderDetails></order>");

:)

0
ответ дан 18 December 2019 в 05:49
поделиться
  1. Напишите схему XML, описывающую вашу структуру. (Вы также можете использовать xsd.exe для автоматического создания схемы в соответствии с заданным XML-файлом.)
  2. Используйте xsd.exe / classes для создания классов C # в соответствии с вашим XML схема.
  3. Теперь вы можете использовать класс XmlSerializer для сериализации / десериализации вашего XML из / в объектную структуру C #.

Существует также статья проекта кода , описывающая это подход.

1
ответ дан 18 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: