я следующий XML Я хотел бы перевести WordML:Transform Docbook списки XML в WordML с помощью таблицы стилей XSLT
<document>
<section>
<para>An ordered list:</para>
<orderedlist>
<listitem>first list item</listitem>
<listitem>second list item
<orderedlist>
<listitem>one</listitem>
<listitem>two
<orderedlist>
<listitem>one</listitem>
<listitem>two</listitem>
<listitem>three</listitem>
</orderedlist>
</listitem>
<listitem>three</listitem>
</orderedlist>
</listitem>
<listitem>third list item</listitem>
</orderedlist>
</section>
</document>
Это мой XSLT 1.0 шаблон таблицы стилей до сих пор:
<xsl:template match="document/section/orderedlist">
<xsl:for-each select="listitem">
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr>
<w:ilvl w:val="{count(ancestor::orderedlist)-1}"/> <!-- level of list item (0,1,2 etc.) -->
<w:numId w:val="{position()}"/> <!-- the orderedlist should get an ID (1,2,3 etc.) -->
</w:numPr>
</w:pPr>
<w:r><w:t><xsl:value-of select="."/></w:t></w:r>
</w:p>
<xsl:apply-templates />
</xsl:for-each>
</xsl:template>
Но это
- не работает для вложенных списков.
- Идентификатор списка («position()») должен быть одинаковым для каждого списка упорядоченного списка.
Может ли кто-нибудь помочь мне? Особенно с вложенной частью списка.
См: http://xsltransform.net/jyH9rN8
Ожидаемый результат:
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="0"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>first list item</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="0"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>second list item</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="1"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>one</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="1"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>two</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="2"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>one</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="2"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>two</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="2"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>three</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="1"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>three</w:t></w:r>
</w:p>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/><w:numPr><w:ilvl w:val="0"/><w:numId w:val="1"/></w:numPr></w:pPr>
<w:r><w:t>third list item</w:t></w:r>
</w:p>
Не могли бы вы вывести ожидаемый выходной код? –
Я добавил ожидаемый результат. – user2496550