XSLT在混合内容元素中查找前面的文本节点

时间:2014-09-11 13:09:23

标签: xml xslt

如何找到直接位于“specialElem”元素之前的文本节点(本例中为“Foo-”)?虽然应保留“主要”元素内的所有其他空格,但应删除“specialElem”元素前面的空格。

<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 Foo Foo Foo Foo Foo Foo Foo Foo-Bar! Foo Foo

提前提醒!

1 个答案:

答案 0 :(得分:0)

如果您正确关闭<specialElem>标记并删除评论,则:

/main/text()[following-sibling::node()[1][self::specialElem]]

将选择所请求的文本节点。

-
不太确定您要求的输出格式是什么。