ID或Class元素中的xslt值

时间:2014-07-23 05:33:31

标签: xml xslt

尝试在div中的ID元素中获取xml的值。

<xsl:for-each select="tables">
    <xsl:for-each select="table">
        <xsl:for-each select="@name">
            <div id="<xsl:value-of select="."/>">

            </div>
        </xsl:for-each>
    </xsl:for-each>
</xsl:for-each>

我知道这是错的..需要帮助如何正确地做到这一点


输入XML

<?xml-stylesheet type="text/xsl" href="ddlms.xslt"?>
<tables>
<table name="tbl_AccountLedger">
 <row>
        <Field></Field>
        <ColumnName>ledgerId</ColumnName>
        <DataType>varchar</DataType>
        <Prec tbl="krishna">50</Prec>
        <Cons>PK</Cons>
        <Ref></Ref>
        <Coded></Coded>
        <Def></Def>
        <Description></Description>
 </row>
 </table>
 </tables>

3 个答案:

答案 0 :(得分:3)

<div id="<xsl:value-of select="."/>">替换为<div id="{.}">

并观察奇迹的发生。

答案 1 :(得分:1)

试试这个样式表:

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

    <xsl:strip-space elements="*"/>
    <xsl:output method="xml" indent="yes"/>

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

    <xsl:template match="tables">
        <xsl:apply-templates/>
    </xsl:template>

    <xsl:template match="table">
        <div id="{@name}">

        </div>
    </xsl:template>

</xsl:stylesheet>

尝试阅读有关属性值模板的内容(http://www.w3.org/TR/xslt#attribute-value-templates)。

答案 2 :(得分:1)

尝试类似:

<xsl:template match="/">
    <root>
        <xsl:for-each select="tables/table">
            <div id="{@name}">

            </div>
        </xsl:for-each>
    </root>
</xsl:template>