Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2016, 01:33   #1
kolpak
Новичок
Джуниор
 
Регистрация: 18.12.2014
Сообщений: 2
По умолчанию Повторяющиеся узлы в XML

Всем доброго дня!

Подскажите, пожалуйста, решение или в каком направлении копать.
Как можно вынести из одного xml файла в другой все повторяющиеся значения тегов в единственном экземпляре.

У меня есть:

Код:
<ChildTerms>
      <Term Name="Industrial accidents">
	  <Id>2D777E23418C4A61AB869F88F0CC22B5</Id>
        <ChildTerms>
          <Term Name="Mining accidents">
			<Id> 6EF1C84088321004850DAE2AC3A6923E </Id>
		  </Term>
          <Term Name="Oil spills">
			<Id>77A15F9213344CF8AEFBD6560C618C9A</Id>
		  </Term>
        </ChildTerms>
      </Term>
      <Term Name="Structural failures">
	    <Id>439E22A0894B100489C4BA0A2B2CA13E</Id>
        <ChildTerms>
          <Term Name="Bridge collapses">
			<Id>513CDC30894B10048A8E87A309043C03</Id>
		  </Term>
          <Term Name="Building collapses">
			<Id>513D0340894B10048A8E87A309043C03</Id>
		  </Term>
		  <Term Name="Maritime accidents" />
			<Id>88C2A7E08886100487FECB8225D5863E</Id>
		  </Term>
        </ChildTerms>
      </Term>
      <Term Name="Evacuations">
		<Id>58AD538091C7100480A9A55C96277D3E</Id>
	  </Term>
      <Term Name="Fires" >
	    <Id>6B5B04B0882F100480E6AE2AC3A6923E</Id>
        <ChildTerms>
          <Term Name="Residential fires">
		    <Id>69D001C8896410048EBBD56C852D093E</Id>
		  </Term>
          <Term Name="Wildfires">
		    <Id>6C61CA38882F10048FA88BB2970C7204</Id>
		  </Term>
        </ChildTerms>
      </Term>
 <ChildTerms>
Нужно:

Код:
<ChildTerms>
      <Term Name="Structural failures">
	    <Id>439E22A0894B100489C4BA0A2B2CA13E</Id>
        <ChildTerms>
          <Term Name="Bridge collapses">
			<Id>513CDC30894B10048A8E87A309043C03</Id>
		  </Term>
        </ChildTerms>
      </Term>
 <ChildTerms>
Я только начал изучать парсер XML, есть идея: получить список всех узлов через GetElementsByTagName("Id"), закинуть значения этого тэга в список и оставить в нем только те значения, которые не повторяются, затем удалить все узлы, которые имеют значения из этого списка, затем той же самой процедурой оставить по одному экземпляру повторяющихся узлов. Но это не рационально и бред(
kolpak вне форума Ответить с цитированием
Старый 26.10.2016, 03:54   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если структура строгая, то можно в принципе за счет сериализации и перегрузки Equals сильно облегчить дело.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.10.2016, 01:32   #3
kolpak
Новичок
Джуниор
 
Регистрация: 18.12.2014
Сообщений: 2
По умолчанию

Спасибо, помогло!
kolpak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узлы дерева на TurboPascal. Harveeey Помощь студентам 0 03.11.2014 21:27
Деревья(узлы и глубина) С++ Teropan231 Помощь студентам 1 15.10.2013 13:05
узлы TreeView novicepro Компоненты Delphi 1 22.03.2013 19:36
Равноотстоящие узлы(delphi) Baburek Фриланс 1 27.12.2010 15:36
узлы TreeView street-walker Общие вопросы Delphi 0 30.05.2010 19:11