Как я могу получить дочерний текст с тем же именем, используя xslt? - PullRequest
0 голосов
/ 20 июня 2010

источник:

<article>
<title>title1</title>
<description>des1</description>
<child>
  <children>
    <subarticle>
      <title>subtitle11</title>
      <description>subdes11</description>
    </subarticle>
  </children>
  <children>
    <subarticle>
      <title>subtitle12</title>
      <description>subdes12</description>
    </subarticle>
  </children>
</child>
</article>
<article>
<title>title2</title>
<description>des2</description>
<child>
  <children>
    <subarticle>
      <title>subtitle21</title>
      <description>subdes21</description>
    </subarticle>
  </children>
  <children>
    <subarticle>
      <title>subtitle22</title>
      <description>subdes22</description>
    </subarticle>
  </children>
</child>
</article>

после использования xlst, я хочу, чтобы документ понравился так:

<article>
<title>title1</title>
<description>des1 des11 des12</description>
</article>

<article>
<title>title2</title>
<description>des2 des21 des22</description>
</article>

Кто-нибудь дает какие-либо предложения? Спасибо!

1 Ответ

2 голосов
/ 20 июня 2010

Я предполагаю, что "des11" и "des12" должны быть "subdes11" и "subdes12".

Попробуйте это:

<xsl:template match="article">
  <article>
    <title><xsl:value-of select="title/text()"/></title>
    <description>
      <xsl:value-of select="description/text()"/>
      <xsl:for-each select="child/children"/>
        <xsl:text> </xsl:text>
        <xsl:value-of select="subarticle/description/text()"/>
      </xsl:for-each>
    </description>
  </article>
</xsl:template>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...