вставить неограниченный элемент XML с помощью xslt - PullRequest
1 голос
/ 07 июня 2011

Я опубликовал много вопросов, касающихся вставки элементов XML с использованием XSLT, я новичок в XSLT и учусь, работая над ним.Так что спасибо всем, кто помог мне пройти.

Теперь у меня возник другой вопрос: поэтому я вставляю повторяемый (неограниченный) элемент XML, чтобы он имел тот же xpath, но разные значения для элемента, когда я помещаю xpath в соответствие шаблону шаблона.он переопределяет ранее вставленные элементы.Так есть ли способ вставить несколько элементов в существующий XML, используя один и тот же xpath?мой ввод - это xpath, куда должны быть вставлены эти элементы и значения элементов.Например, мой ввод:

xpath: /root/child
element to insert: new_element
with the values: new1, new2 new3

, поэтому вывод должен выглядеть следующим образом:

<root>
 <child> 
   <new_element>new1</new_element>
   <new_element>new2</new_element>
   <new_element>new3</new_element>
  </child>
</root>

Спасибо :)

1 Ответ

1 голос
/ 08 июня 2011

Возможно, я неправильно пойму ваш вопрос, но трудно достичь ваших целей, учитывая детали в вашем посте. Я не должен догадываться здесь, я знаю ... во всяком случае, вы заинтересованы в чем-то вроде этого ...?

Пример преобразования:

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

 <xsl:variable name="newdata">
   <new_element>new1</new_element>
   <new_element>new2</new_element>
   <new_element>new3</new_element>
 </xsl:variable>

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

<xsl:template match="/root/child">
    <xsl:copy>
        <xsl:copy-of select="$newdata"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

С учетом этого ввода

<root>
 <child/> 
</root>

Возвращает:

<root>
   <child>
      <new_element>new1</new_element>
      <new_element>new2</new_element>
      <new_element>new3</new_element>
   </child>
</root>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...