Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
25 / 26 / 5
Регистрация: 27.10.2016
Сообщений: 245

Добавление в xml

02.09.2019, 17:18. Показов 698. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В первый раз сталкиваюсь с xml, как правильно организовать следующие (если не сложно помочь кодом):

В xml должен осуществляться поиск, как только он встретит например <Key ID="STRCAMP_03bv01">, нужно попасть на дочерний <Original>....</Original> и получить текст внутри него. Дальше нужно как-то получить Key ID (<Key ID="STRCAMP_03bv01">), именно строку STRCAMP_03bv01 и выполнить несколько функций. Дальше необходимо в этом <Key ID="STRCAMP_03bv01"> создать под <English>....</English> свой <Russian></Russian> и вписать в него свой текст.

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<Project name="AST">
  <Package name="Main">
    <Key ID="STRCAMP_03bv01">
      <Original>&lt;t size='0.6'&gt;Men, this evening you can put your feet up and relax. You've earned it. &lt;br/&gt;I'm going back to Le Moule. You're in charge.&lt;/t&gt;</Original>
      <English>&lt;t size='0.6'&gt;Men, this evening you can put your feet up and relax. You've earned it. &lt;br/&gt;I'm going back to Le Moule. You're in charge.&lt;/t&gt;</English>
      <Chinese>&lt;t size='0.6'&gt;今晚大家可以翘起脚来好好休息一下了,这是你们应得的。&lt;br/&gt;现在我要回到Le Moule,这里由你来指挥。&lt;/t&gt;</Chinese>
      <Chinesesimp>&lt;t size='0.6'&gt;今晚大家可以翘起脚来好好休息一下了,这是你们应得的。&lt;br/&gt;现在我要回到Le Moule,这里由你来指挥。&lt;/t&gt;</Chinesesimp>
    </Key>
    <Key ID="STRCAMP_03bv02">
      <Original>&lt;t size='0.6'&gt;Hmm. Something tells me we won't be doing much relaxing this evening.&lt;/t&gt;</Original>
      <English>&lt;t size='0.6'&gt;Hmm. Something tells me we won't be doing much relaxing this evening.&lt;/t&gt;</English>
      <Chinese>&lt;t size='0.6'&gt;唔,我有预感我们今天晚上不会太轻松。&lt;/t&gt;</Chinese>
      <Chinesesimp>&lt;t size='0.6'&gt;唔,我有预感我们今天晚上不会太轻松。&lt;/t&gt;</Chinesesimp>
    </Key>

Пока что пришёл к такому коду, но тут такое себе
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Program
    {
        
        static void Main(string[] args)
        {
            string OriginalText = null;
            string TranslateText = null;
            XmlDocument xDoc = new XmlDocument();
            Console.WriteLine("Input xml");
            xDoc.Load(Console.ReadLine());
            XmlElement xRoot = xDoc.DocumentElement;
 
            foreach(XmlNode xnode in xRoot)
            {
                foreach (XmlNode childnode in xnode.ChildNodes)
                {
                    if(childnode.Name == "Original")
                    {
                        OriginalText = childnode.InnerText;
                    }
                    if(OriginalText.IndexOf("&lt;t size='0.6'&gt;") > -1)
                    {
                        TranslateText = "ready";
                        //Найдено
                        XmlElement xmlElement = xDoc.CreateElement("Russian");
                        xmlElement.InnerText = "&lt;t size='0.6'&gt;" + TranslateText + "&lt;t size='0.6'&gt;";
                        XmlElement Grp = xDoc.GetElementById("STRCAMP_03bv01");
                        Grp.AppendChild(xmlElement);
                    }
                    else
                    {
                        //Не найдено
                    }
                }
            }
 
            
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2019, 17:18
Ответы с готовыми решениями:

Добавление в xml
Добрый вечер, у меня xml выглядит так: &lt;?xml version=&quot;1.0&quot; encoding=&quot;Windows-1251&quot;?&gt; &lt;Test&gt; &lt;Problem&gt; &lt;id&gt;1&lt;/id&gt;...

XML добавление и редактирование
Доброго времени. У меня возникла проблема. Сегодня впервые решил познакомиться с XML и начать с ним работать. По учебнику и интернету я...

Добавление строк в xml
Доброго времени суток Подскажите как добавить еще одину строку &quot;&lt;row r=&quot;5&quot; spans=&quot;1:13&quot;&gt;&lt;c r=&quot;C5&quot; s=&quot;2&quot;...

1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
03.09.2019, 04:17
Цитата Сообщение от Jake Morgan Посмотреть сообщение
В первый раз сталкиваюсь с xml, как правильно организовать следующие....
Файл XML это последовательный файл. Последовательные файлы не поддерживают внесение изменений.
Максимум это запись поверх существующей или дозапись в конец. Но для XML эти оба метода лишены смысла.

Поэтому вам надо ЦЕЛИКОМ скачать весь файл (самый удобный способ это десериализация), потом внести изменения в полученный объект и сохранить объект с изменениями (сериализовать) в том же файле.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2019, 04:17
Помогаю со студенческими работами здесь

Добавление узла в xml
При добавлении нового узла все содержимое файла затирается. XDocument xDoc1=new XDocument(); xDoc1.Add( ...

Добавление, а не перезапись XML
Есть авто выгрузка...формирует xml, по 200 объяв в сутки... нужно чтоб в этот файл дописывалось в сутки по 200 объяв 3 раза, и в итоге...

Добавление данных в XML
Товарищи студенты, а так же их родители. С новым годом! У меня есть XML файл: &lt;?xml version=&quot;1.0&quot;...

Добавление, а не перезапись XML
Суть: System.IO.StreamWriter Перезаписывает данные(файл) Надо что бы данные добавляло к существующим вроде как в стриме...

Добавление данных в XML
Проблема следующая . Есть XML файл &lt;?xml version=&quot;1.0&quot;?&gt; &lt;Accounts&gt; &lt;Resource res=&quot;Res&quot;&gt; &lt;Login log=&quot;Log&quot;&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru