powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / XML прочитать и изменит в C#
9 сообщений из 9, страница 1 из 1
XML прочитать и изменит в C#
    #38394189
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!

Поставили задачку, на первый взгляд простую, но что то закопался..

Есть файл "файл.XML"
<Port
value1 = ""
value2 = ""
value3 = ""

<Nodes>
<Node></Node>
<Node></Node>
</Nodes>
/>

Мне нужно сделать следующее:
В фале заменить value1 = "" на value1 = "какое то значение". У меня получается, только если я читаю файл как текст,
м.б. есть возможность читать его как XML? И обращаться к "value1" как к полям??!

Спасибо за помощь..
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38394241
cynep kopoBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте новый XmlElement из прочитанного текста, а потом работайте с перечислением свойств и дочерних узлов корневого элемента.
Кстати, структура - кривая. Xml должен начинаться с "<?xml ...", а корневой узел должен закрываться в конце </port>
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38394247
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cynep kopoBka,
такую структуру принимает другая программа.. ....в конце </port> - это я не дописал )
Спасибо. Буду пробовать!
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38394304
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cynep kopoBka,
А можно чуть подробнее?
Спасибо.
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38394326
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем проблема сгенерировать *.cs класс по схеме?

1. Десериализировать
2. Изменить значение
3. Сериализировать

Профит.

Вот XML:

Код: xml
1.
2.
3.
4.
5.
6.
<Port value1="" value2="" value3="">
  <Nodes>
    <Node></Node>
    <Node></Node>
  </Nodes>
</Port>



Вот его схема:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Port">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Nodes">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Node" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="value1" type="xs:string" use="required" />
      <xs:attribute name="value2" type="xs:string" use="required" />
      <xs:attribute name="value3" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38394625
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var port = new Port { value1 = "my test value", value2 = string.Empty, value3 = string.Empty };
port.Nodes = new[] { new object(), new object(), new object() };
            
using (var writer = new StringWriter(new StringBuilder()))
{
    new XmlSerializer(typeof(Port)).Serialize(writer, port);
    string xml = writer.GetStringBuilder().ToString();
}



Выхлоп:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="utf-16"?>
<Port xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" value1="my test value" value2="" value3="">
  <Nodes>
    <Node />
    <Node />
    <Node />
  </Nodes>
</Port>
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38395160
cynep kopoBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
Dim t_Xml as new Xml.XmlDocument
t_Xml.LoadXml(yourXmlString)
Dim  Elem as Xml.XmlElement = t_Xml.getElementsbyTag("port")(0)


Все. Теперь можете перечислять у объекта свойства и ChildNodes, а также изменять их, добавлять или удалять.
Аналогично работаем с "дочками".
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38395165
cynep kopoBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, ElementsbyTagName
...
Рейтинг: 0 / 0
XML прочитать и изменит в C#
    #38395299
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cynep kopoBka,

спасибо большое..
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / XML прочитать и изменит в C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]