繁体   English   中英

XSLT尝试添加新节点并添加元素

[英]XSLT trying to add new node and adding element

当前,我正在尝试将单词xml转换为xml文件。 它正在尝试通过识别样式来做到这一点。

我目前在这里遇到问题,因为我对XLST转换很陌生,我正在寻求帮助。

我试图在下面的模板中添加一个名为<standingOrder>的新元素,我的单词xm看起来像

Word文件文字

  1. 规划规程(取消有关吉普赛人和旅行者的规定) 最多20分钟(第23号临时命令) abc先生请假,以便带上xxxxxxxxxxxx。 注意:动议的成员和反对该动议的成员各自最多可以发言10分钟。

注意:

在上面的文本中,最多20分钟(23号站立订单)(突出显示)将具有一种名为StandingOrderReference的样式,如下面的xslt代码所示,如​​果找到文本23号站立订单,则应建立一个名为<standingOrder>和值23应该是节点的innertext 为此,我已经在下面完成了操作,但无法显示其价值。

XSLT

<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-beforesubstring-before ,我已经使用了substring-before 请注意,在xml中的(Standing Order后面还有单词No. .。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM