[英]XSLT trying to add new node and adding element
當前,我正在嘗試將單詞xml轉換為xml文件。 它正在嘗試通過識別樣式來做到這一點。
我目前在這里遇到問題,因為我對XLST轉換很陌生,我正在尋求幫助。
我試圖在下面的模板中添加一個名為<standingOrder>
的新元素,我的單詞xm看起來像
- 規划規程(取消有關吉普賽人和旅行者的規定) 最多20分鍾(第23號臨時命令) abc先生請假,以便帶上xxxxxxxxxxxx。 注意:動議的成員和反對該動議的成員各自最多可以發言10分鍾。
在上面的文本中,最多20分鍾(23號站立訂單)(突出顯示)將具有一種名為StandingOrderReference的樣式,如下面的xslt代碼所示,如果找到文本23號站立訂單,則應建立一個名為<standingOrder>
和值23應該是節點的innertext
。 為此,我已經在下面完成了操作,但無法顯示其價值。
<xsl:when test="@styleId='StandingOrderReference'">
<xsl:element name="standingOrder">
<xsl:value-of select="substring-after(.,'(Standing Order ')"/>
</xsl:element>
</xsl:when>
<standingOrder>23</standingOrder>
請糾正我在哪里做錯了。 與往常一樣,我們非常感謝您的幫助。
根據評論,如果您在帖子中放置了實際的xml摘錄,那將是更好的選擇。 但是,作一些假設,下面的xslt:
<xsl:template match="/xml/someElement">
<xsl:choose>
<xsl:when test="@styleId='StandingOrderReference'">
<xsl:element name="standingOrder">
<xsl:value-of select="
substring-before(
substring-after(.,'(Standing Order No. '),
')')"/>
</xsl:element>
</xsl:when>
</xsl:choose>
</xsl:template>
解析此文檔:
<xml>
<someElement styleId="StandingOrderReference">
**Up to 20 minutes (Standing Order No. 23)** Mr a
</someElement>
</xml>
要返回您似乎想要的東西,即:
<standingOrder>23</standingOrder>
請注意,您還需要截斷子substring-before
此substring-before
,我已經使用了substring-before
。 請注意,在xml中的(Standing Order
后面還有單詞No.
.。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.