Разделение строки- XML на строковые переменные | Сериализация? - PullRequest
1 голос
/ 17 июня 2020

У меня есть строка в программе, которая хранит текст в стиле xml, я хотел бы назначить

Я могу использовать только C# и только. NET 2.0 i. NET 3.5

  <Document>
    <IdSprawy>vff24</IdSprawy>
    <TaskNumber>0173196</TaskNumber>
    <TestText>ferf24</TestText>
   </Document>

Я хочу конечный результат: (теоретически такие результаты будут)

string Id = 'vff24';
string TaskNumber = '0173196';
string TestText = 'ferf24';

Я не совсем знаю, как это сделать

Я начинаю писать sth вот так:

    public class A_StartActSerScr
    {
        public static void OnFormExit()
        {
            string TextXML;  // this xml


        // here i want to assign data from xml to variables via the "Document" class
        // for exp.
            string IdSprawyX = 'vff24';
            string TaskNumberX = '0173196';
            string TestTextX = 'ferf24';


        }
    }

    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public class Document
    {
        [System.Xml.Serialization.XmlElement("IdSprawy")]
        public string IdSprawyField{ get; set; }

        [System.Xml.Serialization.XmlElement("TaskNumber")]
        public string TaskNumberField{ get; set; }

        [System.Xml.Serialization.XmlElement("TestText")]
        public string TestTextField { get; set; }
    }

Я не знаю, как правильно писать классы:

и как написать функцию десериализации:

1 Ответ

1 голос
/ 17 июня 2020

Я думаю, что этот вопрос отвечает на ваш вопрос о десериализации с помощью XmlSerializer.

Другой вариант - использовать Linq to Xml для анализа строки XML . Приведенный ниже код не обязательно оптимизирован, но он анализирует xml на отдельные значения.

string xml = "<Document><Id>vff24</Id><TaskNumber>0173196</TaskNumber><TestText>ferf24</TestText></Document>";
var xEl = System.Xml.Linq.XElement.Parse(xml);

string id = xEl.Element("Id").Value;
string taskNumber = xEl.Element("TaskNumber").Value;
string testText = xEl.Element("TestText").Value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...