2014-09-11 49 views
0

如何找到直接位于“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提前!

+0

你能给我们一个真实的例子,你需要什么?这似乎有点奇怪的要求。 – JLRishe 2014-09-11 13:29:09

回答

0

如果关闭正确的<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