xslt - 在 XSLT 中使用 XPath 访问输入元素的值

标签 xslt dom xhtml xpath input

我正在为 Firefox 开发一个 Web 应用程序,它有一个按钮,可以触发文档 DOM 的客户端 XSLT 转换,并通过 AJAX 获取样式表。

以下是要转换的 XHTML 的一部分:

<html>
<head>
    <title>Static Javascript-based XMR Form Creator</title>
</head>
<body>
    <h1 id="title">Static Javascript-based XMR Form Creator</h1>

    <div class="opt_block" id="main_opts">
        Form name <input type="text" id="form_name" />
        Form cols <input type="text" id="form_cols" size="3" maxlength="3" />
    </div>
    <button id="generate">Generate source</button>
    <textarea rows="20" cols="50" id="xmr_source" ></textarea>
</body>

在样式表内,我想要访问第一个输入字段(id 为 form_name)的 value 属性。

XSLT 如下所示:

<xsl:template match="/html/body/div[@id = 'main_opts']" >
    <form>
        <xsl:attribute name="fname">
            <xsl:value-of select="input[@id = 'form_name']/@value" />
        </xsl:attribute>
    </form>
</xsl:template>

我将 XSLT 应用到当前 文档上,如下所示:

var processor = new XSLTProcessor();
processor.importStylesheet(data); // data received via AJAX request
// document is obviously the object representing the current DOM
var result = processor.transformToDocument(document);

问题是 XPath 应该完成这项工作:

<xsl:value-of select="input[@id = 'form_name']/@value" />

不返回任何内容,而通过 Firebug 检查 DOM 会显示 input 元素的 value 属性确实有一个值。

有人可以帮忙吗?

编辑:明确 XSLT 应用于当前文档

最佳答案

尝试使用斜杠或点点斜杠引用输入

<xsl:value-of select="/input[@id = 'form_name']/@value" />
<xsl:value-of select="../input[@id = 'form_name']/@value" />

关于xslt - 在 XSLT 中使用 XPath 访问输入元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2638833/

相关文章:

Javascript - 从 URL 获取多个图像的信息,然后将它们插入到 DOM 中

Html/css 定位帮助

jquery - 模板:XSLT 与 jQuery

xslt - 在 XSL 转换中使用 Wix 变量

xml - 在 XSLT 中按属性值对 XML 节点进行分组

xslt - 有条件地嵌套多个 XSLT 模板

javascript - 在 Angular2 中选择事件

jquery - 使用 jQuery 删除 <html> 上方和下方的标记 </html>

XHTML主题,脚步和肢体重要性

xhtml - rel 属性中的 "me"是什么意思?