В настоящее время у меня есть документ XML, который в основном состоит из нескольких разговоров между людьми, как разговор в чате.
У меня каждый разговор показывает, как я хочу до сих пор, за исключением того, что я хочу, чтобы каждое имя было уникальным цветом для удобства чтения.
Насколько я понимаю, XML преобразуется в HTML с помощью CSS. Я хотел бы использовать XPath и XSL 1.0 для этого:
XML
<wtfwhispers xmlns="http://wtfwhispers.kicks-ass.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wtfwhispers.kicks-ass.org wtfwhispers.xsd">
<conversation uuid="Diedrick">
<datePosted>2010-05-30</datePosted>
<description>What a great description</description>
<dialog>
<dialogDate>2009-12-22</dialogDate>
<whisper>
<whisperTime>03:55:00</whisperTime>
<speaker>Stubbymush</speaker>
<babble>i said something here</babble>
</whisper>
<whisper>
<whisperTime>03:56:00</whisperTime>
<speaker>Jaymes</speaker>
<babble>what did you say?</babble>
</whisper>
<whisper>
<whisperTime>03:56:00</whisperTime>
<speaker>Stubbymush</speaker>
<babble>i said something here!</babble>
</whisper>
...
<whisper>
<whisperTime>03:57:00</whisperTime>
<speaker>Stubbymush</speaker>
<babble>gawd ur dumb</babble>
</whisper>
</dialog>
</conversation>
</wtfwhispers>
В идеале я хотел бы получить вывод <p class="speaker one">
для первого оратора, <p class="speaker two">
для второго и т. Д.
Я пытался использовать метод Meunchian, чтобы найти, сколько у меня уникальных ораторов, но то, что у меня не работало:
...
<xsl:key name="speakerList" match="wtf:whisper" use="wtf:speaker" />
<xsl:template match="/">
<html lang="en">
<body>
<p>
<xsl:value-of select="count( key( 'speakerList', wtf:speaker ) )" />
</p>
</body>
</html>
</xsl:template>
...
Когда я ввожу 'Jaymes' или 'Stubbymush', я получаю правильное количество раз, когда говорящий говорил, но не сколько говорящих было в общем разговоре.
Заранее спасибо, и если у вас есть предложения по более простым методам, потому что я слишком усложняю, пожалуйста, сообщите.