создание файла XSLT - PullRequest
       3

создание файла XSLT

2 голосов
/ 11 января 2011

У меня есть два xml-файла:

<m2> 
 <header> 
  <to>ggg</to> 
  <from>aaa</from> 
  <id>11</id> 
  <name>gd</name> 
  <mtype>me</mtype> 
 </header> 
 <body>some text</body> 
</m2> 

2.

<m2> 
   <header> 
      <desc> 
         <to>ggg</to> 
         <from>aaa</from> 
      </desc> 
      <id>11</id> 
      <name>gd</name> 
      <mtype>nothing</mtype> 
   </header> 
   <body>some text</body> 
</m2> 

Что такое файл xslt, который преобразуется из первого xml во второй xml?xslt необходимо преобразовать значение mtype из «me» в «некоторый текст» и вставить элементы «to» и «from» в элемент «desc».

Ответы [ 2 ]

2 голосов
/ 11 января 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:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="to">
  <desc>
   <xsl:copy-of select=".|../from"/>
  </desc>
 </xsl:template>

 <xsl:template match="mtype/text()">nothing</xsl:template>
 <xsl:template match="from"/>
</xsl:stylesheet>

при применении к предоставленному XML-документу, восстановленному из рисунка (Никогда больше так не делать!):

<m2>
 <header>
  <to>ggg</to>
  <from>aaa</from>
  <id>11</id>
  <name>gd</name>
  <mtype>me</mtype>
 </header>
 <body>some text</body>
</m2>

дает желаемый результат :

<m2>
   <header>
      <desc>
         <to>ggg</to>
         <from>aaa</from>
      </desc>
      <id>11</id>
      <name>gd</name>
      <mtype>nothing</mtype>
   </header>
   <body>some text</body>
</m2>

Объяснение : Простое применение шаблона разработки правил идентификации. Использование и переопределение шаблона идентификации является наиболее фундаментальным и мощным шаблоном проектирования XSLT.

См. Примеры и пояснения по адресу: http://dpawson.co.uk/xsl/sect2/identity.html

0 голосов
/ 11 января 2011

Для этого есть много уроков; просто выполните поиск в Интернете по «Учебнику по XSLT». Вот один из сайтов:

http://www.w3schools.com/xsl/

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