передача атрибута от одного элемента к другим - PullRequest
0 голосов
/ 30 октября 2019

Нужна небольшая помощь в принятии решения. Не могу собрать код для простой цели.

Что мне нужно.

- 1 в базовом XML-файле у меня есть родительский элемент с уникальным идентификатором (не числовой, например 'Атрибут d124914-a402-ab72-949a ")

- 2, а затем у меня более 10 дочерних элементов

- 3 (что делать)

------> чтобы получить (по переменной?) значение этого атрибута

------> вставить этот уникальный идентификатор идентификатора в другие более 10 элементов в дополнение к их уже существующим атрибутам

Спасибо!

1 Ответ

0 голосов
/ 30 октября 2019

Рассмотрим следующий пример:

XML

<root>
    <parent id="100">
        <child id="1">alpha</child>
        <child id="2">bravo</child>
        <child id="3">charlie</child>
    </parent>
    <parent id="200">
        <child id="4">red</child>
        <child id="5">green</child>
    </parent>
</root>

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- identity transform -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="child">
    <child parent-id="{../@id}">
        <xsl:apply-templates select="@*|node()"/>
    </child>
</xsl:template>

</xsl:stylesheet>

Результат

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <parent id="100">
    <child parent-id="100" id="1">alpha</child>
    <child parent-id="100" id="2">bravo</child>
    <child parent-id="100" id="3">charlie</child>
  </parent>
  <parent id="200">
    <child parent-id="200" id="4">red</child>
    <child parent-id="200" id="5">green</child>
  </parent>
</root>

Чтобы лучше это понять, прочитайте о шаблонах значений атрибутов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...