这是我的xslt文件: -
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="*" mode="item">
<li>
<xsl:value-of select="@value" />
</li>
<xsl:apply-templates select="current()[*]" />
</xsl:template>
<xsl:template match="*/*">
<ul>
<xsl:apply-templates select="*[1] | node()[current()/ancestor::*[2]]"
mode="item" />
</ul>
</xsl:template>
</xsl:stylesheet>
使用此xslt我已创建HTML标记ul li
这是我的xml文件: -
<?xml-stylesheet href="b.xsl" type="text/xsl"?>
<root>
<child_1 entity_id = "1" value="Game" parent_id="0">
<child_2 entity_id="2" value="Activities" parent_id="1">
<child_3 entity_id="3" value="Physical1" parent_id="2">
<child_6 entity_id="6" value="Cricket" parent_id="3">
<child_7 entity_id="7" value="One Day" parent_id="6"/>
</child_6>
</child_3>
<child_4 entity_id="4" value="Test1" parent_id="1">
<child_8 entity_id="8" value="Test At Abc" parent_id="4"/>
</child_4>
<child_5 entity_id="5" value="Test2" parent_id="1">
<child_9 entity_id="9" value="Test At Xyz" parent_id="5"/>
</child_5>
</child_2>
</child_1>
</root>
现在我想在li上设置click事件,如果li有子,则在div标签上打印文本
我也有一个javascript函数。
$('li:not(:has(*))').click(function(){
$('#result').text($(this).text());
});
但我怎么申请我不知道这个。
我需要一点帮助。一些伙伴帮我解决了这个问题
感谢。
答案 0 :(得分:0)
您当前的xsl提供以下输出:
<ul>
<li>Activities</li>
<ul>
<li>Physical1</li>
<ul>
<li>Cricket</li>
<ul>
<li>One Day</li>
</ul>
</ul>
<li>Test1</li>
<ul>
<li>Test At Abc</li>
</ul>
<li>Test2</li>
<ul>
<li>Test At Xyz</li>
</ul>
</ul>
</ul>
真的,嵌套的ul本身就是列表项,所以应该在li标签里面,并且还有一两个其他修复过的问题:
<ul>
<li>Activities</li>
<li>
<ul>
<li>Physical1</li>
<li>
<ul>
<li>Cricket</li>
</ul>
<li>One Day</li>
</ul>
</li>
<li>Test1</li>
<li>
<ul>
<li>Test At Abc</li>
</ul>
</li>
<li>Test2</li>
<ul>
<li>Test At Xyz</li>
</ul>
</li>
</ul>
目前还不完全清楚你所追求的是什么,请编辑问题以显示所需的输出,然后我可以就你需要的xsl提出建议。至于包含脚本,以下内容将起作用 - 根据需要使用内联或外部链接:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<xsl:call-template name="HeaderTemplate" />
<body>
</body>
</html>
</xsl:template>
<xsl:template name="HeaderTemplate">
<head>
<script>
function MyFunction()
{
}
</script>
<script src="myScript.js"></script>
</head>
</xsl:template>
</xsl:stylesheet>