[英]XPath Substring
我有一個XML文件,我需要使用XSL腳本進行轉換。
以下是示例Feed。 我需要在NameLabel
元素中提取文本,但我只需要前兩個破折號之間的文本。
例如,我想在下面的字符串中的A
:
NTX- A -20120131-0006
我不熟悉XPath,所以我很難將表達式組合在一起,但是我假設我需要使用substring-(之前的|之后)。 我只是不確定如何。
示例XML:
<NewsML>
<NewsItem>
<Identification>
<NameLabel>NTX-A-20120131-0006</NameLabel>
</Identification>
</NewsItem>
</NewsML>
編輯:
我正在使用xslt 1.0
substring-before(s1,s2) and substring-after(s1,s2) would work.
substring-before(substring-after(NewsML/NewsItem/Identification/NameLabel,'-'),'-')
嘗試
<xsl:template match="/">
<xsl:apply-templates select="NewsItem/NewsML/Identification"/>
</xsl:template>
<xsl:template match="Identification">
<xsl:value-of select="substring-before(substring-after(NameLabel,'-'),'-'))"/>
</xsl:template>
但我無法測試這個
如果您使用的是XSLT 2.0,那么更好的表達方式是:
fn:replace( NewsItem/NewsML/Identification, "^.*-(.)-.*$", $1)
但是,如果你堅持使用XSLT 1,那么請選擇Aepheus的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.