XSLT在混合内容元素中查找前面的文本节点
问题描述:
如何找到直接位于“specialElem”-element(本例中为“Foo-”)前面的文本节点?当“主”元素内的所有其他空格都应保留时,“特殊元素”元素前面的空格将被删除。XSLT在混合内容元素中查找前面的文本节点
<main>
Foo Foo
<someElem>
Foo Foo
</someElem>
Foo Foo
<otherElem>
<subElem>
Foo Foo
</subElem>
</otherElem>
Foo- <!-- the whitespaces here shall be removed -->
<specialElem>
Bar!
<specialElem/>
Foo Foo
</main>
所需的输出:
富富富富富富富富富酒吧! Foo Foo
Thnaks提前!
答
如果关闭正确的<specialElem>
标签和删除注释,则:
/main/text()[following-sibling::node()[1][self::specialElem]]
将选择请求的文本节点/秒。
-
不太确定您输入的格式是什么。
+0
谢谢!这似乎工作。你能用正常的语言解释选择器表达吗? – Schinski 2014-09-11 13:36:47
+0
@Schinski选择文本节点/ s('main'的子节点),其紧接的兄弟节点是'specialElem'元素。 – 2014-09-11 13:38:34
你能给我们一个真实的例子,你需要什么?这似乎有点奇怪的要求。 – JLRishe 2014-09-11 13:29:09