我如何選擇一個文本節點的前面節點,從一個特定的節點開始,這個節點的id是我知道的,而不是從根節點獲取文本節點?如何從特定節點開始選擇文本節點的前節點而不是根節點?
當我從文本節點的模板匹配中調用下面的塊時,我從根目錄獲取所有前面的文本節點。我想修改上面的代碼只選擇後出現具有特定ID的節點說123即像文本節點// * [@ ID =「123」]
<xsl:template match="text()[. is $text-to-split]">
<xsl:variable name="split-index" as="xsd:integer"
select="$index - sum(preceding::text()/string-length(.))"/>
<xsl:value-of select="substring(., 1, $split-index - 1)"/>
<xsl:copy-of select="$new"/>
<xsl:value-of select="substring(., $split-index)"/>
</xsl:template>
<xsl:variable name="text-to-split" as="text()?"
select="descendant::text()[sum((preceding::text(), .)/string-length(.)) ge $index][1]"/>
怎麼辦我將條件包括在我使用的前面:: text的位置,以便選擇與我知道的特定節點的ID相關的前面的文本節點?
好問題(+1)。看到我的答案有三種不同的解決方案:) – 2010-05-06 18:54:02
@DimitreNovatchev你忘了實際+1嗎? ;) – Izkata 2013-10-08 18:59:21
從我+1,因爲這個問題已經給出瞭如何解決我自己的問題的想法... – Izkata 2013-10-08 19:12:51