所以我的代码中有一个xhtml标签,就像这样......
<input type="checkbox" name="test" id="radio3" value="test"/>
但是,我通过我用来格式化html文档的XSL文件提取数据。我打算使用if语句以便它提取的数据,如果它遵循某个标准,则勾选复选框。所以基本上我会添加一个属性,以便生成的html看起来像......
<input type="checkbox" name="test" id="radio1" value="test" checked=""/>
起初我使用了If语句......
<xsl:if variable="//o:TEST = 'Y'">
<input type="checkbox" name="test" id="radio1" value="test" checked=""/>
</xsl:if>
<xsl:if variable="//o:TEST = 'N'">
<input type="checkbox" name="test" id="radio1" value="test"/>
</xsl:if>
这很好......但是我发现我的模型文件无法读取数据,我假设它与模型收集数据后XSL如何处理数据有关。
所以我想知道我将如何去,或者是否有人可以引导我如何操纵已经在我的HTML中的实际数据。 (因此,不是在我的XSL文件中生成复选框输入,而是在我的HTML文件中添加复选框输入,然后从HTML文件中输入复选框输入。)
干杯
答案 0 :(得分:1)
您可以根据条件修改<input>
元素,而不是像这样创建新的<input>
元素:
<xsl:stylesheet xmlns="" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0" xmlns:html="http://www.w3.org/1999/xhtml" xpath-default-namespace="http://www.w3.org/1999/xhtml">
<xsl:output method="html" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="input">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:choose>
<xsl:when test="1=1">
<xsl:attribute name="checked"></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*|text()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*|text()|@*">
<xsl:copy>
<xsl:apply-templates select="*|text()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我已经使用此输入进行了测试:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="checkbox" name="test" id="radio3" value="test"/>
</body>
</html>
它创建了checked=""
属性:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="checkbox" name="test" id="radio3" value="test" checked=""></input>
</body>
</html