簡體   English   中英

XPath子串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM