次のXMLを考える:私はタイトルといくつかの新しいタグでの次の内容をラップ各段落部に動作するようにテンプレートを実行したいXPath1 - 選択兄弟
<p class='sectiontitle'>Examples</p>
<p class='paragraphtitle'>Example1</p>
<p>That's some text.</p>
<p>That's some text again.</p>
<p class='paragraphtitle'>Example2</p>
<p>That's some other text.</p>
<p>That's some other text again.</p>
<!-- potentially add more paragraphtitles -->
<p class='sectiontitle'>New title</p>
<p>Some non-needed text.</p>
を。
私はすべてのp [@ class = 'paragraphtitle']を選択するXSLT1.1/Xpath1ファイルを持っています。テンプレートの中で次の字幕またはセクションタイトルまで次の兄弟を選択します。
私は期待してこのような場合には、期待される出力を生成しません<xsl:template match="p[@class='paragraphtitle']" mode="create-example-block">
<example>
<title>
<xsl:value-of select="." />
</title>
<xsl:apply-templates
select="//p[@class='sectiontitle' or @class='paragraphtitle']/preceding-sibling::*[preceding-sibling::p[@class='paragraphtitle'][1] = text() and not(self::p[@class='sectiontitle' or @class='paragraphtitle'] or not(self::*[following-sibling::p[@class='sectiontitle']]))]" />
</example>
</xsl:template>
:
<example>
<title>Example1</title>
<p>That's some text.</p>
<p>That's some text again.</p>
</example>
<example>
<title>Example2</title>
<p>That's some other text.</p>
<p>That's some other text again.</p>
</example>
は誰が私にヒントを与えることはできますか?
HTTPを参照してください。 ://stackoverflow.com/a/36781226/252228などの質問と回答があります。 –