の間で最初に来るのテスト:XSLT2 - ノードはこの構造を考えるとオプション
<body>
<h1>Main Title</h1>
<p class="sectiontitle>Title</p>
<p class="bodytext">some text</bodytext>
<ul>...</ul>
<p class="paragraphtitle>Subtitle</p>
<p class="bodytext">some text</bodytext>
</body>
またはparagraphtitleとsectiontitleが逆転している。この1:
<h1>Main Title</h1>
<p class="paragraphtitle>Title</p>
<p class="bodytext">some text</bodytext>
<ul>...</ul>
<p class="sectiontitle>Subtitle</p>
<p class="bodytext">some text</bodytext>
</body>
私は別に、このXML構造を転換していますXML(DITA)のフレーバーであり、このために、どのノードが最初に来るのかを知る必要があります。これは、ファイルの残りの部分を処理する方法を教えてくれるからです。
最初に何が起こったかを知るまで、ファイルを処理する方法は他にありません。
これらのタイトルの前にh1、h2、h3 ...要素があることは知っています。メインタイトルとクローズドボディータグの間には、<p class=bodytext>
要素があります。それは非常にランダムです。
どのようなものが最初に来るのかを教えてください:セクションタイトルpまたはパラグラフタイトルp。
私は次のように選択に入れるいくつかのクレイジーな表現で試してみた:(まだ何かを微調整する必要がある)、ほとんどの場合に動作することを
body/p[@class='sectiontitle'][1]/preceding-sibling::p[@class!='paragraphtitle'][last()]/preceding-sibling::*[not(self::p[@class='sectiontitle' or @class='paragraphtitle']) and preceding-sibling::h1]
または
body/p[@class='paragraphtitle'][1]/preceding-sibling::p[@class!='sectiontitle'][last()]/preceding-sibling::*[not(self::p[@class='sectiontitle' or @class='paragraphtitle']) and preceding-sibling::h1]
が、私はそこに感じます可能性のリストの中で最初にどのノードが来るのかを簡単に伝える必要があります。
絶対位置を取得する方法はありますか?
if absposition(paragraphtitle[1]) < absposition(sectiontitle[1]) then
は、なぜあなたは最初に来るかを知る必要がありますか?ここで解決しようとしている**本当の**問題は何ですか? –
私はファイルをどのように処理するかを知るためにファイルを識別しようとしています。私は2つの図形を知っています。まず、sectiontitle最初に、それに基づいてparagraphtitleを作成します。 – Flag