У меня есть таблица стилей XSL, которая переводит плоский XML-файл (файл должен быть плоским - это способ, которым программа выводит его).Это выглядит так:
<Content>
<Paragraph Number="1" Type="Scene Heading">
<Text>Scene Heading</Text>
</Paragraph>
<Paragraph Type="Action">
<Text>Action Text</Text>
</Paragraph>
<Paragraph Type="Character">
<Text>Character</Text>
</Paragraph>
<Paragraph Type="Dialogue">
<Text>Dialogue Text</Text>
</Paragraph>
<Paragraph Number="2" Type="Scene Heading">
<Text>Scene Heading</Text>
</Paragraph>
<Paragraph Type="Action">
<Text>Action Text</Text>
</Paragraph>
<Paragraph Type="Character">
<Text>Character</Text>
</Paragraph>
<Paragraph Type="Dialogue">
<Text>Dialogue Text</Text>
</Paragraph>
<Paragraph Type="Character">
<Text>Character</Text>
</Paragraph>
<Paragraph Type="Dialogue">
<Text>Dialogue Text</Text>
</Paragraph>
.
.
.
</Content>
Мне нужна таблица, подобная этой:
Scene# Type Text
1 Scene Head. Scene Heading Text
1 Action Action Text
1 Character Character Text
1 Dialogue Dialogue Text
2 Scene Head. Scene Heading Text
2 Action Action Text
2 Character Character Text
2 Dialogue Dialogue Text
2 Character Character Text
2 Dialogue Dialogue Text
Но я могу только сделать, чтобы номер сцены находился в заголовке сцены, например:
Scene# Type Text
1 Scene Head. Scene Heading Text
Action Action Text
Character Character Text
Dialogue Dialogue Text
2 Scene Head. Scene Heading Text
Action Action Text
Character Character Text
Dialogue Dialogue Text
Character Character Text
Dialogue Dialogue Text
Есть ли способ сделать это?
Мой XSL теперь выглядит так:
<ROW>
<!-- Type
-->
<COL>
<DATA>
<xsl:value-of select="@Type"/></DATA>
</COL>
<!-- Scene Number
-->
<COL>
<DATA>
<xsl:if test="@Type='Scene Heading'">
<xsl:value-of select="@Number"/></xsl:if></DATA>
</COL>
<!-- Type
-->
<COL>
<DATA>
<xsl:value-of select="Text"/></DATA>
</COL>
</ROW>
Спасибо за любую помощь!