是否可以使用substring-before和substring-after作爲選擇器?如果不是,你會怎麼做?substring-after和substring-before使用元素而不是字符串
如果我有這樣的片段,例如,
<root>
<element>This is an example. Some text here | and some text there</element>
</root>
我可以用串 - 前或子,後與管道|獲得左側或右側的文本
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:template match="root">
<element><xsl:value-of select="substring-before(element, '|')"/></element>
</xsl:template>
</xsl:stylesheet>
得到
<?xml version="1.0" encoding="UTF-8"?>
<element1>This is an example. Some text here </element1>
但我怎麼能做到這一點與將文本,如LB或ALT的元素?
<?xml version="1.0" encoding="UTF-8"?>
<root>
<element>This is an example. Some text here <alt type="divider"/> and some text there</element>
</root>
我在想兄弟姐妹的事情,但我不想返回一個元素,但字符串。所以我無法真正包圍它。
預先感謝您!
你不能在選擇器軸上使用'text()'嗎? –
「*我怎麼能用一個元素分割文本*」一個元素永遠不會分割文本「。你展示的是三個獨立的兄弟節點:一個文本節點,一個元素節點和另一個文本節點。 –
你已經以錯誤的方式經典地表述了這個問題:你不是問「我怎麼能達到X」,而是問「我可以用雙頭錘子嗎?」;這讓我們去研究這個帖子,以發現你想要的結果,並告訴你,雙頭錘子不是要走的路。事實上,你說這個問題的方式表明你正在將XML文檔看作是帶有交織標記的內容串,而不是節點樹。你需要改變這種想法! –