使用下面的XML,我想知道如何将case_id节点中的文本值作为下面xsl表中隐藏输入标记的属性。 这可能吗?
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="data.xsl"?>
<NewDataSet>
<Cases>
<Case>
<case_id>30</case_id>
...
...
</Case>
</Cases>
</NewDataset>
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<input type="hidden" name="case_num" value="?"/>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:5)
试试这个
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<input type="hidden" name="case_num">
<xsl:attribute name="value">
<xsl:value-of select="/NewDataSet/Cases/Case/case_id/text()"/>
</xsl:attribute>
</input>
</xsl:template>
</xsl:stylesheet>
或者你可以像这样内联
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<input type="hidden" name="case_num" value="{/NewDataSet/Cases/Case/case_id/text()}"/>
</xsl:template>
答案 1 :(得分:4)
只需将您的XSLT更改为此,假设您只有1个case_id,否则,您需要使用更具体的模板匹配,并删除我用作示例的XPATH值中的一些路径。
<input type="hidden" name="case-num">
<xsl:attribute name="value">
<xsl:value-of select="/NewDataSet/Cases/Case/case_id" />
</xsl:attribute>
</input>
答案 2 :(得分:2)
您需要使用更具体的匹配来扩展您的XSLT。
以下内容应输出包含input
每个case_id
值Case
的{{1}}元素。我假设每case_id
有一个Case
。我已尽力使XSLT尽可能明确,但如果你不愿意,你不需要在你的实现中做到这一点。
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="Case">
<xsl:element name="input">
<xsl:attribute name="type">
<xsl:text>hidden</xsl:text>
</xsl:attribute>
<xsl:attribute name="name">
<xsl:text>case_num</xsl:text>
</xsl:attribute>
<xsl:attribute name="value">
<xsl:value-of select="case_id"/>
</xsl:attribute>
</xsl:element>
</xsl:template>
答案 3 :(得分:2)
Just use an AVT (属性值模板),如下所示:
<input type="hidden" name="case_num" value="{*/*/*/case_id}"/>
答案 4 :(得分:0)
我把它改为:
<input type="hidden" name="case-num">
<xsl:attribute name="value">
<xsl:value-of select="case_id" />
</xsl:attribute>
</input>
因为它在foreach循环中。 谢谢你们,这是一种享受!