1
我已经生成了一个XmlDocument并使用文件路径的递归遍历填充它。该文件看起来或多或少是这样的:树结构(目录树)的C#,XSLT,XML转换
<?xml version="1.0" encoding="utf-16"?>
<Tree>
<Directory name="Root" path="C:\Root">
<Directory name="1" path="C:\Root\1">
<Directory name="3" path="C:\Root\1\3">
<File name="5.png" size="198525440" path="C:\Root\1\3\5.png" />
<File name="6.png" size="736621" path="C:\Root\1\3\6.png" />
</Directory>
<File name="2.png" size="761944" path="C:\Root\1\2.png" />
<File name="3.png" size="2663" path="C:\Root\1\3.png" />
</Directory>
<Directory name="2" path="C:\Root\2">
<File name="4.png" size="324187" path="C:\Root\2\4.png" />
</Directory>
<File name="1.png" size="2663" path="C:\Root\1.png" />
</Directory>
</Tree>
对于目录结构:
C:
C:\Root
C:\1
C:\1\3
C:\1\3\5.png
C:\1\3\6.png
C:\1\2.png
C:\1\3.png
C:\2
C:\2\4.png
C:\1.png
鉴于上述树,我们的目标是树写入控制台,人类可读的形式如下:现在
Root/
+-- 1/
| +-- 3/
| | +-- 5.png
| | +-- 6.png
| +-- 2.png
| +-- 3.png
| +-- 2/
| | +-- 4.png
+-- 1.png
,我可以很容易地编写递归结构,输出所需的文本的功能,但我想,XSLT可能改造的XmlDocument入T他以一种比较简单的方式显示了上面的形式。我会问的唯一问题是......怎么样?对于XSLT(意思是说,总是noob),我有点小气。我认为使用变换将是一种更为灵活的方法来硬编码遍历和输出函数。
除此之外,能够按照名称或文件大小对XML树进行排序,同时保留文件树结构(对每个节点的子节点进行排序)会很好。这可以用XSLT来完成,还是我应该编写我自己的IComparer来做到这一点?
感谢您给我提供的任何帮助。
感谢Martin。它看起来比Perl更难以理解! – Robinson
好的,我打算把这个标记为答案,因为我认为最初的问题是无理地要求你教我所有关于XSLT的知识! – Robinson