Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > изменение исходного xml


Автор: medin_84 27.9.2008, 10:14
 smile есть xml следующего вида
Код

<ROOT>
    <row>
      <field name="id"></field>
      <field name="rid"></field>
      <field name="f_ref"></field>
    </row>
</ROOT>


который надо изменить в следующий вид
Код

<refs>
    <ref rid="сюда значение этого<field name="rid"></field>">сюда значение этого <field name="f_ref"></field></ref>
</refs>


не знаю как это сделать помогите smile  smile 

Автор: jsa 29.9.2008, 04:55
Код

<xsl:template match="row">
    <xsl:element name="refs">
        <xsl:element name="ref">
              <xsl:attribute name="rid">
                   <xsl:value-of select="field[@name = 'rid']/text()" />
              </xsl:attribute
              <xsl:value-of select="field[@name = 'f_ref']text()" />
        </xsl:element>
    </xsl:element>
</xsl:template>

Автор: medin_84 29.9.2008, 08:17
Спасибо! работает smile 
у меня row больше поэтому сделал так
Код

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>

<xsl:template match="/">
<refs>
    <xsl:for-each select="ROOT/row">
        <xsl:element name="ref">
          <xsl:attribute name="rid">
               <xsl:value-of select="field[@name = 'rid']/text()" />
          </xsl:attribute>
          <xsl:value-of select="field[@name = 'f_ref']/text()" />
        </xsl:element>
    </xsl:for-each>
</refs>
</xsl:template>
</xsl:stylesheet>

жаль не могу репутацию изменять, а то +1

Автор: jsa 29.9.2008, 12:03
Цитата(medin_84 @  29.9.2008,  13:17 Найти цитируемый пост)
Спасибо! работает

тогда пометь как решенную

Автор: Snowcore 30.9.2008, 12:44
Fixed smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)