如何像文件夹系统一样显示XML文件

0 投票
1 回答
526 浏览
提问于 2025-04-16 08:39

我搜索了很多关于这个问题的帮助,但大多数关于XML和Python的信息都是讲怎么读取和解析文件,而不是怎么写文件。我现在有一个脚本,可以把一个文件夹的文件系统输出为XML文件,但我想让这个文件包含可以在网页上读取的HTML标签。

另外,我还想要一个图形化的文件夹样式来展示这些XML信息。我见过用JavaScript解决这个问题,但我对JavaScript没有经验,所以在Python中能做到吗?

import os
import sys
from xml.sax.saxutils import quoteattr as xml_quoteattr

dirname = sys.argv[1]
a = open("output2.xml", "w") 

def DirAsLessXML(path):
    result = '<dir name = %s>\n' % xml_quoteattr(os.path.basename(path))
    for item in os.listdir(path):
        itempath = os.path.join(path, item)
        if os.path.isdir(itempath):
            result += '\n'.join('  ' + line for line in 
                DirAsLessXML(os.path.join(path, item)).split('\n'))
        elif os.path.isfile(itempath):
            result += '  <file name=%s />\n' % xml_quoteattr(item)
    result += '</dir>'
    return result

if __name__ == '__main__':

    a.write('<structure>\n' + DirAsLessXML(dirname))

1 个回答

2

一般来说,直接在Python中通过拼接字符串来写HTML代码并不是个好主意。过一段时间再回头看你的代码,你可能根本搞不清楚自己写了什么样的HTML。我建议你使用一个模板 引擎

另外,既然你是要在XML之间转换,使用XSLT(一种XML转换语言)似乎是个不错的选择。

关于JavaScript,如果你想要一个交互式的文件夹视图,那你就需要用到它。不过,这并不会影响你生成HTML页面的方式。无论你用什么方法,只需在HTML的头部添加一个脚本引入标签,然后把JavaScript的部分放在一个单独的文件里(当然就是你引入的那个文件)。

撰写回答