以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  求助一个简单的XSLT转换成XML的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=86517)


--  作者:ccipfang
--  发布时间:8/31/2010 6:51:00 AM

--  求助一个简单的XSLT转换成XML的问题
doc.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="fang.xsl"?>
<docs>
 <directory name="Dir 1">
  <file name="File 1" size="125" path="file1.pdf" />
  <file name="File 2" size="10.2" path="file2.txt" />
 </directory>
 <directory name="Dir 2">
  <directory name="Dir 3">
   <file name="File 3" size="1887" path="file3.pdf" />
  </directory>
  <directory name="Dir 4">
   <file name="File 4" size="475" path="file4.pdf" />
   <file name="File 5" size="49" path="file4.zip" />
  </directory>
 </directory>
</docs>

要显示的结果:
.Dir 1 - size: 67,6
   -file1 -size:125
   -file2 -size:10,2

.Dir 2 -size: 803,66666
   -Dir 3 -size:1887
      *file3 -size:1887
   -Dir 4 -size :262
      *file4 -size:475
      *file5 -size:49

Stats:
Files:5
Files (size >50):3
Files (.Pdf):3

(说明:在Dir1里有两个文件file1,file2,在Dir2中包含Dir3和Dir4,Dir3里有文件file3,Dir4里有文件file4和file5)

怎么写fang.xsl 文件啊?
谢谢.


--  作者:Qr
--  发布时间:8/31/2010 3:44:00 PM

--  
基本代码如下,格式的话,自己完善:
<xsl:template match="/">
 <xsl:apply-templates/><br/><br/>
 Stats:<br/>
 Files:<xsl:value-of select="count(//file)"/>
  其它类似,可参考Xpath手册。
</xsl:template>

<xsl:template match="directory">
 <xsl:apply-templates select="@name"/><br/>
 <xsl:apply-templates/>
</xsl:template>

<xsl:template match="file">
 <xsl:apply-templates select="@path"/>
 <xsl:apply-templates select="@size"/><br/>

</xsl:template>

<xsl:template match="text()|@*">
 <xsl:value-of select="."/>
</xsl:template>

-----------------------
结果:
Dir 1
file1.pdf125
file2.txt10.2
Dir 2
Dir 3
file3.pdf1887
Dir 4
file4.pdf475
file4.zip49


Stats:
Files:5


--  作者:ccipfang
--  发布时间:8/31/2010 9:36:00 PM

--  
为什么我的测试结果什么都没有啊
--  作者:Qr
--  发布时间:8/31/2010 11:23:00 PM

--  
以下是引用Qr在2010-8-31 15:44:00的发言:
基本代码如下,格式的话,自己完善:
<xsl:template match="/">
  <xsl:apply-templates/><br/><br/>
  Stats:<br/>
  Files:<xsl:value-of select="count(//file)"/>
   其它类似,可参考Xpath手册。
</xsl:template>

<xsl:template match="directory">
  <xsl:apply-templates select="@name"/><br/>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="file">
  <xsl:apply-templates select="@path"/>
  <xsl:apply-templates select="@size"/><br/>

</xsl:template>

<xsl:template match="text()|@*">
  <xsl:value-of select="."/>
</xsl:template>

-----------------------
结果:
Dir 1
file1.pdf125
file2.txt10.2
Dir 2
Dir 3
file3.pdf1887
Dir 4
file4.pdf475
file4.zip49


Stats:
Files:5


以上代码,IE测试通过!


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
61.523ms