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