`
BBjava
  • 浏览: 126530 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

xsl递归解晰xml

阅读更多
xml:
<?xml version="1.0" encoding="UTF-8"?>
<formDayreports>
	<formDayreport id="1" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	<formDayreport id="2" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	<formDayreport id="3" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	<formDayreport id="4" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	<formDayreport id="5" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	<formDayreport id="6" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	<formDayreport id="7" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1">
		<formDayreport id="9" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1">
			<formDayreport id="9" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1">
			<formDayreport id="9" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1">
			<formDayreport id="9" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1">
			
		</formDayreport>
		</formDayreport>
		</formDayreport>
		</formDayreport>
	</formDayreport>
	<formDayreport id="8" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1">
		<formDayreport id="10" lastCash="1000.0" in="100.0" out="100.0" finalCash="1000.0" subject="1" subjectName="a1"/>
	</formDayreport>
</formDayreports>


可以看到上面是一个递归的xml文档。

xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

	<xsl:template match="/">
		<xsl:apply-templates select="formDayreports" />
	</xsl:template>

	<xsl:template match="formDayreports">
		<table border="1" height="100%" width="100%">
			<tr height="30">
				<td width="100%" align="center">
					日报表查询
			</td>
			</tr>
			<tr>
				<td>
					<xsl:call-template name="head" />
				</td>
			</tr>
			<tr  height="*">
				<td>
					
					<xsl:for-each select="formDayreport">
						<tr>
							<td>
								<table width="100%" height="100%" border="1">
									<xsl:apply-templates select="." />
								</table>
							</td>
						</tr>
						
		
					</xsl:for-each>
						
				</td>
			</tr>

		</table>
	</xsl:template>

	<xsl:template match="formDayreport">
		
			<tr>
				<td width="5%">
					<xsl:value-of select="@id"></xsl:value-of>
				</td>

				<td width="5%">
					<xsl:value-of select="@subject"></xsl:value-of>
				</td>
				<td width="5%">
					<xsl:value-of select="@subjectName"></xsl:value-of>
				</td>
				<td width="5%">
					<xsl:value-of select="@lastCash"></xsl:value-of>
				</td>
				<td width="5%">
					<xsl:value-of select="@in"></xsl:value-of>
				</td>
				<td width="5%">
					<xsl:value-of select="@out"></xsl:value-of>
				</td>
				<td width="*">
					<xsl:value-of select="@finalCash"></xsl:value-of>
				</td>
			</tr>
			<tr>
				<td>
					<xsl:apply-templates select="formDayreport" />
								
				</td>
			</tr>
		
	</xsl:template>

	<xsl:template name="head">
		<table width="100%" height="100%" border="1">
			<tr>
				<td width="5%">科目编号</td>
				<td width="5%">科目名称</td>
				<td width="5%">昨日余额</td>
				<td width="5%">借</td>
				<td width="5%">贷</td>
				<td width="*">今日余额</td>
			</tr>
		</table>
	</xsl:template>
</xsl:stylesheet>


html:
<html>
	<head>
		<title>My JSP 'darreport-list.jsp' starting page</title>
<script src="comUtil.js"></script>
<script language = "javascript">
function parseXml() {
	var datasXslDoc = commLoad("subjectTree.xsl");
	//var sUrl = "${ctx}/formDayreportsubject.action?numPerPage=10&pageNum=1";
	//var dataDoc = commHttpSend(sUrl, null, false, null, null);
	var datasDoc = commLoad("abc.xml");
	var showStr = datasDoc.documentElement.transformNode(datasXslDoc);
	document.getElementById("divContent").innerHTML = showStr;
}
</script>
	</head>

	<body>
		<div id="divContent"></div>
		<input type="button" name="显示" onclick="parseXml(1)">
	</body>
</html>


还有一个文件:commUtil.js,我将单独把它放到本条目第一编内。
0
1
分享到:
评论

相关推荐

    一个利用xml和xsl解释生成无限级的树形菜单的源程序

    在上述代码中,`&lt;xsl:template&gt;`定义了处理XML元素的规则,`&lt;xsl:apply-templates&gt;`则递归地处理子元素,从而实现无限级别的树形展开。 当浏览器加载XML文档和相应的XSLT样式表时,它会执行转换并将结果呈现为HTML...

    利用xml和xsl自动生成菜单

    在IT行业中,XML(eXtensible Markup Language)和XSL(eXtensible Stylesheet Language)是两个非常重要的技术,常用于数据的结构化表示和格式化展示。本篇文章将详细探讨如何利用XML和XSL来自动生成菜单,以及它们...

    xml+xsl中分割字符

    在XML与XSL技术的结合应用中,对字符串进行分割处理是一项常见的需求,尤其是在需要将一个包含多个值的属性或元素拆分为多个单独元素时。本文将深入探讨如何利用XSLT中的`substring-before()`和`substring-after()`...

    xsl使用示例代码

    `&lt;xsl:apply-templates/&gt;`则会递归地应用其他模板,处理子元素。 2. **选择器与模式(Selectors & Patterns)**:选择器用于决定哪些XML元素应该应用特定的模板。在XSLT中,我们使用XPath(XML Path Language)来...

    javascript xml xsl取值及数据修改第1/2页

    XSL(Extensible Stylesheet Language)则用于转换XML文档的格式,以更直观的方式呈现数据。在给定的场景中,我们需要探讨如何使用JavaScript操作XML文档以及如何应用XSL进行数据的取值和修改。 首先,让我们看看...

    xsl学习

    1. **XSL元素**:XSL元素是转换的基础,比如`&lt;xsl:template&gt;`用于定义匹配XML元素的规则,`&lt;xsl:apply-templates&gt;`用于在处理过程中递归地应用模板,`&lt;xsl:value-of&gt;`用于获取元素的文本内容。 2. **模式匹配**:在...

    无限层级菜单xml实现

    无限层级菜单的关键在于能够递归地展示菜单项及其子项。在XML中,可以通过嵌套元素来表示这种层级关系。例如,一个菜单元素可以包含多个子菜单元素,以此类推,形成无限层级。 3. **HTML和CSS**: "html参考....

    js使用递归解析xml

    当处理复杂的XML结构时,递归解析是一种有效的处理方式,尤其是当XML包含嵌套元素时。在给定的示例中,我们看到一个`RightMenuItems`节点,它包含了多个`Item`节点,这些`Item`节点自身可能还包含其他子`Item`。这种...

    java中使用xslt转换xml成为另一个xml

    在实际应用中,你可能需要处理更复杂的转换场景,例如递归调用XSLT,处理外部参数,或者在转换过程中执行自定义逻辑。XSLT提供了丰富的功能,如模板匹配、变量、函数和模式等,使得XML文档的转换更加灵活和强大。 ...

    xml的班级template应用

    `xsl:apply-templates`指令用于应用模板到XML文档的子元素上,从而递归地处理整个文档结构。 当XSLT处理器应用`ex6.xsl`到`banji.xml`时,它会根据模板的匹配规则对XML文档进行转换,生成一个新的HTML文档,该文档...

    XML.rar_Csharp xml_xml_xml csharp

    通过递归遍历XML节点,可以将XML结构映射到树形视图中,用户可以直观地查看和编辑数据。 6. **异步处理**:处理大型XML文件时,为了提高性能和用户体验,可能需要使用异步操作。C#的`async/await`关键字可以与XML ...

    跟我学XSL(四)

    `&lt;apply-templates&gt;`则用于递归地应用模板,`&lt;xsl:value-of&gt;`用于输出元素的值。 3. **XPath的使用**: XPath是XSLT中的导航工具,可以定位XML文档中的元素、属性和文本。通过路径表达式,比如 `/bookstore/book`...

    跟我学XSL(三)

    同时,`&lt;xsl:apply-templates&gt;`用于递归地应用模板,处理子节点。 在实际应用中,XSLT的一个常见场景是将XML数据转换为HTML,以便在网页上展示。通过创建合适的模板和模式,我们可以定制HTML的结构和样式。例如,将...

    web的xml技术

    - **递归算法**:遍历整个DOM树。 - **深度优先与广度优先**:不同的遍历策略。 #### XMLDOM浏览器差异 - **不同浏览器的DOM实现可能有所不同**。 - **兼容性问题**:需要特别注意。 #### XMLDOM-导航节点 - **`...

    XML数据转换

    这个过程可能涉及到递归遍历XML树、处理嵌套数据以及确定列名。 五、XML到数据库记录转换 XML可以被用来导入或导出数据库记录,如SQL Server的BULK INSERT或Oracle的XMLType。转换时,需要解析XML并创建对应的SQL...

    XSL中进行字符串替换

    本文将详细介绍如何通过XSLT实现字符串的替换,并重点探讨两种常用的方法:使用`ms:script`(仅限于Microsoft的XML解析器)以及纯XSL模板。 ### XSL中的字符串替换 #### 使用translate函数 对于简单的字符替换...

    简单的xml以及分层浏览

    此外,XML还用于创建如XSLT(XML样式表语言)和XSL-FO(XML样式语言格式化对象)等技术,用于数据的转换和呈现。 六、分层浏览 在XML数据量较大时,为了方便查看和管理,可以实现分层浏览功能。通常,通过递归地...

    Xslt语法参考手册.pdf

    XSLT作为XSL规范的一部分,在处理XML数据时具有重要的地位。 #### XSLT概述 XSLT的核心功能在于能够灵活地操纵XML数据。这包括但不限于选择性提取、重新排序、计算以及数据格式的变换等。XSLT的主要优势在于其强大...

Global site tag (gtag.js) - Google Analytics