如何更改属性值

时间:2015-06-21 20:55:41

标签: xml xslt xsd

我想将library(quantmod, quietly=TRUE) getSymbols("SPY", from="2013-01-01") chartSeries(SPY, subset='last 3 months') addSMI(n=5,slow=5,fast=1,signal=1,ma.type="SMA") 的XSD属性@type的值更改为xsd:boolean

我的XSD是

xsd:string

我编写的XSLT将所有<xsd:element name="Complete" nillable="true" type="xsd:boolean"/> <xsd:element name="taskno" nillable="true" type="xsd:integer"/> 属性值替换为@type。我无法检查xsd:string是否为@type

xsd:boolean

1 个答案:

答案 0 :(得分:1)

更改

<xsl:template match="@type">

<xsl:template match="@type[ . = 'xsd:boolean']">

完整XSLT:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                version="1.0">

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="@type[ . = 'xsd:boolean']">
    <xsl:attribute name="type">
      <xsl:value-of select="'xsd:string'"/>
    </xsl:attribute>
  </xsl:template>

</xsl:stylesheet>