У меня несколько тем, я должен включать раздел по пятам с темой элемента с нумерацией идентификатораммне нужно перестраивать тег элемента с помощью XSLT
Мой входной XML является:
<Article>
<Title>Mam</Title>
<Items>
<Item>
<Name>cyst1?</Name>
<Body>
<h1>aaa</h1><p>knee1.</p>
<h2>bbb</h2><p>knee2.</p>
</Body>
</Item>
<Item>
<Name>cyst2?</Name>
<Body>
<p>knee3.</p>
</Body>
</Item>
</Items>
XSL I Используется как:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="#all">
<xsl:template match="Article">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Title"/>
<xsl:template match="h1"/>
<xsl:template match="h2"/>
<xsl:template match="Items">
<xsl:for-each-group select="*" group-starting-with="Items">
<topic>
<xsl:attribute name="id">topic_Head<xsl:number count="Items | Item"/>
</xsl:attribute>
<title>
<xsl:value-of select="//Title"/>
</title>
<xsl:for-each-group select="current-group()" group-starting-with="Item">
<xsl:choose>
<xsl:when test="self::Item">
<topic>
<xsl:attribute name="id">topic_<xsl:number count="Items | Item"/>
</xsl:attribute>
<xsl:apply-templates select="node()"/>
</topic>
</xsl:when>
<xsl:otherwise>
<body>
<xsl:apply-templates select="current-group()"/>
</body>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</topic>
</xsl:for-each-group>
</xsl:template>
<xsl:template match="Body">
<body>
<xsl:apply-templates/>
</body>
</xsl:template>
<xsl:template match="p">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="Name">
<title>
<xsl:apply-templates/>
</title>
</xsl:template>
Выход я, как:
<topic id="topic_1">
<title>Mam</title>
<topic id="topic_2">
<title>cyst1?</title>
<body>
<p>knee1.</p><p>knee2.</p>
</body>
</topic>
<topic id="topic_3">
<title>cyst2?</title>
<body>
<p>knee3.</p>
</body>
</topic>
Ожидаемый результат:
<topic id="topic_1">
<title>Mam</title>
<topic id="topic_2">
<title>cyst1?</title>
<body>
<section id="section1">
<title>aaa</title><p>knee1.</p>
<section id="section2">
<title>bbb</title><p>knee2.</p>
</section>
</section>
</body>
</topic>
<topic id="topic_3">
<title>cyst2?</title>
<body>
<p>knee3.</p>
</body>
</topic>
мне нужно h1 и h2 приходят в секции с атрибутом Id и близко согласно порядок заголовка.
Пожалуйста, предложите мне кодировку. Заранее спасибо.
Правильно укажите ваш XML и XSLT-код. – Tomalak
Я отредактировал. См. Сейчас – User501
Он по-прежнему не имеет отступа. Код, который не является отступом, не читается. – Tomalak