Форум программистов, компьютерный форум, киберфорум
Наши страницы
XML/XSL
Войти
Регистрация
Восстановить пароль
Другие темы раздела
XML/XSL Xsd, xs:key и xs:keyref с несколькими полями разного уровня http://www.cyberforum.ru/xml-xsl/thread1480277.html
Как сделать ключ xs:key с двумя полями, где одно поле проверяет уникальность элементов уровня N (и позволяет на них сослаться xs:keyref ), а другое поле проверяет уникальность элементов уровня N + M...
XML/XSL Преобразование из doc в xml Здравствуйте. Можно ли преобразовать doc-документ в xml, т.к. вручную писать очень долго и муторно? Чем собственно, как? И очень желательно с изначальным отображением данных. http://www.cyberforum.ru/xml-xsl/thread1477214.html
Модуль для джумла 3 XML/XSL
Ребят, делаю модуль для joomla 3, который переводит таблицы exel в базу данных MySQL. При загрузке файла выводит ошибку "Отказано в доступе", помогите разобраться, заранее благодарен. Выкладываю сам...
XML/XSL Как передать значения из элементов XML в атрибуты HTML тегов?
Добрый день. Наверняка это вопрос уже где-то поднимался, но я ничего не нашёл. Как сделать что-то, вроде: <p style="text-color:<xsl:value-of select="color"/>;"><xsl:value-of...
XML/XSL Как выгрузить характиристики через CSV или XML? http://www.cyberforum.ru/xml-xsl/thread1462250.html
Добрый день! Как выгрузить характеристики через CSV или XML? Пример $xml->writeElement("keywords", $row); В таблице только есть "value" и в ней значение характеристики. А мне нужно <param...
XML/XSL Относительные ссылки в файле xml Добрый всем день! Необходима помощь... Имеется файл с презентацией, в которой все графики завязаны с файлами Excel. Однако постоянно при обновлении возникают проблемы с адресами к этим файлам. Хочу... подробнее
darkmayers
0 / 0 / 0
Регистрация: 02.02.2015
Сообщений: 3
0

Как обновить данные в файле xml на основе другого xml?

21.06.2015, 21:15. Просмотров 967. Ответов 1
Метки (Все метки)

Добрый день!

Мне необходимо разработать XSLT преобразование, которое будет обновлять данные в файле formats.xml (узлы name, shortName, type, knd, version) в соответствии с данными в файле classification.xml. При этом в качестве входного файла для преобразования пусть выступает файл formats.xml, а файл classification.xml пусть подгружается с помощью функции document().
Пытался реализовать это через choose, но не получается - зацикливается и копирует все без остановки.
Делаю так:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<xsl:template name="format">
    <xsl:for-each select="format">
      <xsl:call-template name="replace" />
    </xsl:for-each>
  </xsl:template>
  
  <xsl:template name="replace" match="/formats/format">
      <xsl:param name="name" />
  <xsl:choose>
    <xsl:when test="name!=document('classification.xml')/classification/group/format/@name">
      <xsl:copy-of select="../format" />
    </xsl:when>
  </xsl:choose>
  </xsl:template>
Может быть я вообще не так делаю?
Подскажите, как лучше всего реализовать такую функцию?
Вот отрывки из файлов.

Файл formats:

XML
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
<formats>
<format gfv="105702" fileName="new_105702_4.00001">
    <name>2-НДФЛ</name>
    <shortName>2 НДФЛ</shortName>
    <periodBegin>01.01.2006</periodBegin>
    <periodEnd>31.12.2009</periodEnd>
    <type>1</type>
    <knd>1151078</knd>
    <version>4.00001</version>
    <isStoredInDataTree>true</isStoredInDataTree>
    <isCheckedByDom>false</isCheckedByDom>
    <orgTypes>1111</orgTypes>
  </format>
  <format gfv="101508" fileName="new_1151020_5.05">
    <name>Налоговая декларация по налогу на доходы физических лиц (форма 3-НДФЛ)</name>
    <shortName>3-НДФЛ</shortName>
    <periodBegin>01.01.2009</periodBegin>
    <periodEnd>31.12.2009</periodEnd>
    <type>1</type>
    <knd>1151020</knd>
    <version>5.05</version>
    <isStoredInDataTree>false</isStoredInDataTree>
    <isCheckedByDom>false</isCheckedByDom>
    <orgTypes>1111</orgTypes>
  </format>
</formats>
И файл classification:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<classification xmlns:fp="format-properties">
  <group id="1" name="Налоговая отчетность">
    <format id="1" fp:КНД="1110005" shortName="Сбор за пользование объектами водных биологических ресурсов" name="Сведения о полученной лицензии на пользование объектами водных биологических ресурсов, суммах сбора за пользование объектами водных биологических ресурсов, подлежащих уплате в виде разового и регулярных взносов" periods="1" form-modifiers="1">
      <variant id="1" fp:ВерФОтч="3.00000" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
    </format>
    <format id="2" fp:КНД="1110006" shortName="Сбор за пользование объектами животного мира" name="Сведения о полученной лицензии (разрешении) на пользование объектами животного мира, суммах сбора за пользование объектами животного мира, подлежащих уплате, и суммах фактического сбора" periods="1" form-modifiers="1">
      <variant id="1" fp:ВерФОтч="3.00000" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
    </format>
    <format id="3" fp:КНД="1110011" shortName="Сбор за пользование объектами водных биологических ресурсов" name="Сведения о полученных лицензиях (разрешениях) на пользование объектами водных биологических ресурсов, суммах сбора за пользование объектами водных биологических ресурсов, подлежащих уплате в виде разового и регулярных взносов"  periods="1" form-modifiers="1">
      <variant id="1" fp:ВерФОтч="3.00001" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
    </format>
    <format id="4" fp:КНД="1110012" shortName="Сбор за пользование объектами животного мира" name="Сведения о полученных лицензиях (разрешениях) на пользование объектами животного мира, суммах сбора за пользование объектами животного мира, подлежащих уплате, и суммах фактически уплаченного сбора" periods="1" form-modifiers="1">
      <variant id="1" fp:ВерФОтч="3.00001" contentType="Plain866" fp:ТипИнф="ОТЧЕТНОСТЬНП" />
    </format>


Вернуться к обсуждению:
Как обновить данные в файле xml на основе другого xml?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2015, 21:15
Готовые ответы и решения:

В xml файле поменять данные
Добрый день! подскажите можно ли в эксемель файле как то автоматически поменять данные значение...

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

Подскажите, как извлечь данные из XML
В VBScript использую поиск подстроки для звлечения даных из XML. Set xml =...

Нужно взять данные из Xml сделать выборку и на ее основе сделать новый XML
Как лучше поступить в данном случает вложенность большая может воспользоваться сериализацией?

Как в .xml файле проверить существование xml элемента
Читаю xml данные так: Dim xdoc As XDocument = XDocument.Load(&quot;data\Sips.xml&quot;) ...

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