从父母那里获得孩子的价值

时间:2012-02-09 11:05:17

标签: xslt

从父节点开始,我需要测试其中一个子节点的值,以便生成足够的输出。

我的XML文件看起来:

 <Tables>
    <Table>
      <Multi_entity>SPECIFIC</Multi_entity>
      <Table_name>CATEG</Table_name>
      <Is_temporary>FALSE</Is_temporary>
      <Tablespace>APSYS_LOCATION_1</Tablespace>
      <Column>
        <Column_name>CATEGI</Column_name>
        <Position>1</Position>
        <Type>Small</Type>
        <Size>22</Size>
        <Null>No</Null>
        <Default>Yes</Default>
        <Attribute>Precision=5</Attribute>
        <Attribute>Scale=0</Attribute>
      </Column>
      <Column>
        <Column_name>CATEGC</Column_name>
        <Position>2</Position>
        <Type>LongVarchar</Type>
        <Size>1</Size>
        <Null>No</Null>
        <Default>Yes</Default>
        <Attribute>Precision=0</Attribute>
        <Attribute>Scale=0</Attribute>
      </Column>
      <Column>
        <Column_name>CATEG_NAME</Column_name>
        <Position>3</Position>
        <Type>Varchar</Type>
        <Size>23</Size>
        <Null>No</Null>
        <Default>Yes</Default>
        <Attribute>Precision=0</Attribute>
        <Attribute>Scale=0</Attribute>
      </Column>
      <Column>
        <Column_name>CATEG_TYPE</Column_name>
        <Position>4</Position>
        <Type>Small</Type>
        <Size>22</Size>
        <Null>No</Null>
        <Default>Yes</Default>
        <Attribute>Precision=5</Attribute>
        <Attribute>Scale=0</Attribute>
      </Column>
    </Table>

从“表”节点,我需要知道其中一个“列”是否具有“类型”值“LongVarchar”。

2 个答案:

答案 0 :(得分:3)

确实

<xsl:template match="Table[Column/Type = 'LongVarchar']">
  <!-- now transform or output as neeed -->
</xsl:template>

帮助?这匹配Table ColumnTypeLongVarchar的任何{{1}}。

答案 1 :(得分:1)

我设法以一种非常容易的方式来解决我的问题,我对它的简单性感到非常惊讶:

<xsl:when test="Column/Type='LongVarchar'">

就是这样,它完美无缺。 感谢大家的帮助。