Форум программистов, компьютерный форум, киберфорум
Наши страницы
XML/XSL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
1

В xml файле поменять данные

25.01.2017, 10:25. Просмотров 846. Ответов 14
Метки нет (Все метки)

Добрый день! подскажите можно ли в эксемель файле как то автоматически поменять данные значение <col code="3", с привязкой к значению s1="".Пример:
в файле:

s1="52.21.10">

<col code="3">4130.2</col>

а надо
к коду s1="52.21.10">
<col code="3">1</col>
0
Вложения
Тип файла: 7z ТОРГ.7z (1.6 Кб, 3 просмотров)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2017, 10:25
Ответы с готовыми решениями:

Как обновить данные в файле xml на основе другого xml?
Добрый день! Мне необходимо разработать XSLT преобразование, которое будет обновлять данные в...

В HTML файле отображать данные из XML файла
Подскажите, как сделать, чтобы в HTML файле отображались данные из XML файла, да если бы еще и в...

Поиск в XML файле
Дан файл xml, в нём &quot;база данных пользователей&quot;, нужно при помощи javasript найти в нём...

XML тэги в svg файле
Здравствуйте уважаемые посетители форума. Нужна Ваша помощь. Есть SVG файл в котором находятся...

Ограничени длинны строки в файле XML
Доброго времени суток! не знаю сюда или не сюда писать. Первый раз столкнулся с xml. проблема...

14
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
25.01.2017, 11:02 2
natliya, можно, но не совсем понятна задача...
вот кусок твоего кода
XML
1
2
3
4
5
6
7
8
9
<row code="01" s1="400">
        <col code="3">32701</col>
      </row>
      <row code="02" s1="52.2">
        <col code="3">29988</col>
      </row>
      <row code="03" s1="52.21.10">
        <col code="3">4130.2</col>
      </row>
а теперь напиши то, что должно получиться на выходе????
0
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
25.01.2017, 11:18  [ТС] 3
вот:
<row code="01" s1="400">
<col code="3">32701</col>
</row>
<row code="02" s1="52.2">
<col code="3">29988</col>
</row>
<row code="03" s1="52.21.10">
<col code="3">1</col>
</row>

у кодов меняются значения
52.21.10.121 был 48,1 стал 1

52.22.10.110 85,2
52.22.10.111 26,3
52.22.10.112 0
52.22.10.113 58,9
0
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
25.01.2017, 22:16 4
natliya, ну уже начинаю понимать....что элемент row у котрого атрибут s1 равен 52.21.10.121 содержит элемент col - значение котрого надо изменить на 1!? если я правильно понял, то необходимо знать тогда, в каких элементах надо менять значения или всего четыре элемента надо менять?
0
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
25.01.2017, 22:23  [ТС] 5
во всех элементах будут изменения это я для примера 4 написала
0
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
26.01.2017, 00:21 6
natliya,
вот примерное преобразование
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:variable name="s" select="'1'"/>
 
  <xsl:template match="@* | node()">
      <xsl:copy>
          <xsl:apply-templates select="@* | node()"/>  
      </xsl:copy>
  </xsl:template>
 
  <xsl:template match="col[ancestor::row/@s1 = '51.001' or ancestor::row/@s1 = '400']/text()">
    <xsl:value-of select="$s"/>
  </xsl:template>
</xsl:stylesheet>
Добавлено через 3 минуты
natliya,
если во всех элементах надо менять по определенному шаблону, то нужен список что на что менять?

Добавлено через 1 час 3 минуты
natliya,
вот если у тебя будет такой список
XML
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8"?>
<rep>
  <var s1="51.001" new="1"/>
  <var s1="400" new="2"/>
  <var s1="52.2" new="3"/>
  <var s1="52.21.10" new="4"/>
</rep>
то преобразование будет примерно таким
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  
  <xsl:template match="@* | node()">
      <xsl:copy>
          <xsl:apply-templates select="@* | node()"/>  
      </xsl:copy>
  </xsl:template>
 
  <xsl:template match="col/text()">
    <xsl:choose>
    <xsl:when test="ancestor::row/@s1 = document('rep.xml')/rep/var/@s1">
      <xsl:value-of select="document('rep.xml')/rep/var[@s1 = current()/ancestor::row/@s1]/@new"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy-of select="."/>
    </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>
rep.xml - это имя файла в котором данные см.выше список
0
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
26.01.2017, 09:55  [ТС] 7
Спасибо, большое за ответы, только подскажите пожалуйста как теперь это применить, вот у меня есть xml файл( со старыми данными) мне надо по шаблону заменить на новые?
0
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
26.01.2017, 10:23 8
natliya,
Цитата Сообщение от natliya Посмотреть сообщение
мне надо по шаблону заменить на новые?
конечно, прям вот бери мой шаблон и вписывай туда новые данные с привязкой к атрибуту s1. А потом можно делать преобразование на любом процессоре или в том редакторе который может делать преобразование или выложи сюда файлы и я тебе через 3 мин сделаю преобразование....если еще тут буду....
0
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
27.01.2017, 22:51  [ТС] 9
Я извиняюсь но не могли бы Вы мне еще помочь, у меня не получается преобразовывать, может я не так что делаю я прикладываю принскрин посмотрите пожалуйста,
Pattern fail: какой файл должен быть прикреплен?
Target fail:какой файл должен быть прикреплен?
0
Вложения
Тип файла: rar ТОРГ2.rar (382.4 Кб, 4 просмотров)
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
28.01.2017, 02:10 10
Лучший ответ Сообщение было отмечено natliya как решение

Решение

natliya,
Цитата Сообщение от natliya Посмотреть сообщение
Pattern fail: какой файл должен быть прикреплен?
Target fail:какой файл должен быть прикреплен?
я не пользуюсь этим редактором, поэтому не могу сказать точно...я пользуюсь XMLCopyEditor вот ссылка для скачивания
http://xml-copy-editor.sourceforge.net/
после установки XMLCopyEditor
1. открыть файл old.xml
2. нажать клавишу F8
но прежде всего распаковать этот архив и в этом архиве найти файл old.xml.
test.7z
2
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
28.01.2017, 16:24  [ТС] 11
Спасибо Вам большое Все получилось!!!!!!!!!
1
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
09.02.2017, 11:48  [ТС] 12
Добрый день! не подскажите еще если у s1="15.81.11", есть код 2,5,6,7, можно автоматически у одного кода менять несколько значений .Пример:
<row code="1" s1="15.81.11
</col><col code="2">27.55</col>
<col code="5">23.11</col>
<col code="6">23.11</col>
<col code="7">2331</col>
<col code="8">0.1</col>
<col code="9">0.07</col>
0
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
09.02.2017, 16:52 13
natliya, не совсем понятно, нужно показать что есть на воде и что должно получиться. в XML нет кодов - в xml есть элементы атрибуты и их значения....перефразируй вопрос и покажи пример.....
0
natliya
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 18
09.02.2017, 20:05  [ТС] 14
есть
<row code="1" s1="15.81.11
</col><col code="2">27.55</col>
<col code="5">23.11</col>
<col code="6">23.11</col>
<col code="7">2331</col>
<col code="8">0.1</col>
<col code="9">0.07</col>

<row code="1" s1="15.81.11.110
</col><col code="2">27.55</col>
<col code="5">1000</col>
<col code="6">5000</col>
<col code="7">100</col>
<col code="8">80</col>
<col code="9">10</col>

должно измениться:

<row code="1" s1="15.81.11
</col><col code="2">1</col>
<col code="5">2</col>
<col code="6">3</col>
<col code="7">4</col>
<col code="8">5</col>
<col code="9">6</col>

<row code="1" s1="15.81.11.110
</col><col code="2">27.55</col>
<col code="5">5</col>
<col code="6">6</col>
<col code="7">4</col>
<col code="8">3</col>
<col code="9">1</col>
0
ФридрихФ
147 / 140 / 29
Регистрация: 23.10.2015
Сообщений: 592
09.02.2017, 20:43 15
natliya, в таком хаотичном порядке у меня вряд ли получиться....если одинаково менять - то да а иначе я не справлюсь...вот к примеру
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    <row code="01" s1="400">
          <col code="2">27.55</col>
          <col code="5">23.11</col>
          <col code="6">23.11</col>
          <col code="7">2331</col>
          <col code="8">0.1</col>
          <col code="9">0.07</col> 
      </row>
      <row code="02" s1="52.2">
          <col code="2">27.55</col>
          <col code="5">23.11</col>
          <col code="6">23.11</col>
          <col code="7">2331</col>
      </row>
      <row code="03" s1="52.21.10">
          <col code="9">27.55</col>
          <col code="5">23.11</col>
          <col code="6">23.11</col>
      </row>
я могу поменять на так
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   <row code="01" s1="400">
          <col code="2">1</col>
          <col code="5">2</col>
          <col code="6">3</col>
          <col code="7">4</col>
          <col code="8">5</col>
          <col code="9">6</col> 
      </row>
      <row code="02" s1="52.2">
          <col code="2">1</col>
          <col code="5">2</col>
          <col code="6">3</col>
          <col code="7">4</col>
      </row>
      <row code="03" s1="52.21.10">
          <col code="9">1</col>
          <col code="5">2</col>
          <col code="6">3</col>
      </row>
0
09.02.2017, 20:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2017, 20:43

Где ошибка в этом XML файле?
Для хранения своих отчетов решил писать их данные в xml файл. &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;...

Иногда появляется символ \n в xml файле при выгрузке из БД
не нашел более подходящей ветки, если что извините... создается xml файл с информацией о пациентах...

Не отображаются данные xml
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt; &lt;html...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru