XSLT 1.0 XSL:for 每个通过比较节点来获取所需的值



因为我是xslt的新手,如果我的问题标题不正确,很抱歉!

我的 XML:

<workorder>
    <wo>wo1234</wo>
    <locspec>
        <attrid>accessrd</attrid>
        <attrvalue>nogothruroad</attrvalue>
        </locspec>
        <locspec>
        <attrid>phone</attrid>
        <attrvalue>99123</attrvalue>
        </locspec>
        <locspec>
        <attrid>accessvehicle</attrid>
        <attrvalue></attrvalue>
    </locspec>
</workorder>

期望输出:

wo: wo1234
Road to access: nogothrurd
Phone number: 99123
Do you have vehicle access: 

我的 xsl:

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:xs="http://www.w3.org/2001/XMLSchema"  version="1.0">
    <xsl:template match="/">
        <xsl:apply-templates />
    </xsl:template>
    <xsl:template match="workorder">        
        <xsl:apply-templates select="wo" />
        <xsl:apply-templates select="locspec" />
</xsl:template>
    <xsl:template match="wo">
        <xsl:text>wonum: </xsl:text><xsl:value-of select="." />
    </xsl:template>
    <xsl:template match="locspec">
        <xsl:for-each select="locspec/attrid">
        <xsl:text>Road to access: </xsl:text>
        <xsl:value-of select="locspec/attrid"/>
         </xsl:for-each>        
    </xsl:template>
    </xsl:stylesheet>
所需的逻辑是:如果attrid是"accessrd",则获取它的attrvalue,如果attrid是"phone",则获取它的attrvalue,

如果attrd是"accessvehicle",则获取它的attrvalue。

坦率地说,我不知道如何将xsl编码用于我想要的输出。请帮助我。提前感谢!

电流输出为空。

试试这个:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text"/>
  <xsl:template match="wo">
    <xsl:value-of select="concat(name(), ': ', .)"/>
  </xsl:template>
  <xsl:template match="locspec">
    <xsl:text>
</xsl:text>
    <xsl:choose>
      <xsl:when test="attrid = 'accessrd'">
        <xsl:text>Road to access</xsl:text>
      </xsl:when>
      <xsl:when test="attrid = 'phone'">
        <xsl:text>Phone number</xsl:text>
      </xsl:when>
      <xsl:when test="attrid = 'accessvehicle'">
        <xsl:text>Do you have vehicle access</xsl:text>
      </xsl:when>
    </xsl:choose>
    <xsl:value-of select="concat(': ', attrvalue)"/>
  </xsl:template>
  <xsl:template match="text()"/>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新