我可能会问一个非常基本的问题。我搜索了很多帖子,但没有找到正确的信息。请指出我正确的方向。
以下是我的方案。我正在使用jQuery / Javascript,HTML,XSL。
我有一些XML格式的示例数据。数据的结构如下所示
<information>
<qContact>
<name>TOM</name>
<phone>612656656</phone>
<email>tom@tom.com</email>
<empId>1221212<empId>
</qContact>
<qContact>
<name>SRAMK</name>
<phone>566541042</phone>
<email>abc@vnc.com</email>
<empId>654212301<empId>
</qContact>
<!-- ... --->
</information>
我有一个表,它在一个有超链接/按钮“EDIT”的表中显示了一些这些信息。因此,当用户点击表格中的编辑按钮时,我需要填充文本框/单选按钮中的数据,我有XSL格式的数据。
我附上了我的屏幕示例图:
我不确定如何在jQuery或Javascript中访问XSL。 在html中我无法访问,例如我正在迭代它。
<xsl:for-each select="/<xsl:for-each select="/information/qContact">">
<xsl:value-of select="name"/>
这里我有XSL节点列表,我需要其中一个,假设当用户点击mike行时,我需要从XSL获取mike属性并在文本框中设置它们。
可行吗?
在jQuery中访问XSL
在这种情况下迭代特定节点<qContact>
(然后获取姓名,电子邮件,电话等)?
请帮帮我。
更多信息:
1)我使用Html创建不同的字段[文本,单选按钮等]
2)当我将数据保存在数据库中并重新加载表单时,我将该数据放入XSL并在html页面中访问它。
示例:
<td><input id="empName" type="text" name="name" value="{/information/qContact/name}" /></td>
3)我也可以在jquery里面访问它。
示例:
console.log("<xsl:value-of select="/information/qContact/name>");
问题场景:
<xsl:for-each select="/information/qContact">
<a href="#" onclick="edit('Generated','{ID}','{current()}');event.returnValue=false; return false;">Edit</a>
</xsl:for-each>
function edit(name,id,selectData){
console.log("Srikanth");
console.log(selectData); // This is printing all the data inside it.
console.log("<xsl:value-of select="/information/name"/>"); // Not able to access like this
$('#name').val('<xsl:value-of select="/information/qContact/name"/>');// Not able to access like this
$('#email').val('<xsl:value-of select="/information/qContact/email"/>');// Not able to access like this
console.log(id);
}
答案 0 :(得分:0)
问题标题是在jQuery中访问XSL
简短的回答是:你做不到。您可以使用transformNode
执行xslt(取决于浏览器)。
但这不是你想做的事 请记住,涉及三个步骤。
您生成的链接类似于:
< a href="#" onclick="edit('Generated','','
TOM
612656656
tom@tom.com
1221212
');event.returnValue=false; return false;">Edit</a>
因此,您需要生成所需数据的html或JavaScript表示。
例如,生成名为{name: 'TOM'}
的JS对象:
<a href="#"
onclick="edit('Generated','{ID}',{{ name: '{name}' }});event.returnValue=false; return false;">Edit</a>