你到底想达到什么目的?如果您需要基于 XML 文件定期重新生成的 HTML 文件,那么您可能想要为它编写一个程序(例如,BeautifulSoup Python 库允许您非常轻松地解析 XML/HTML 文件)并在每次运行时运行它需要更新 HTML 文件(您也可以为其设置 cron 作业)。
如果您需要能够动态地从 XML 中获取数据,您可以使用一些 JavaScript 库并从 xml 文件加载 XML,然后将其动态添加到页面中。
例如,这个 Python 程序将解析一个 XML 文件 (file.xml) 并创建一个包含 XML 文件数据的 HTML 文件 (song_information.html)。
from BeautifulSoup import BeautifulStoneSoup
f = open("file.xml")
soup = BeautifulStoneSoup(f.read())
f.close()
html = """<!DOCTYPE html>
<html>
<head>
<title>Song information</title>
</head>
<body>
"""
for key in soup.dict.findAll('key'):
html += "<h1>%s</h1>\n" % key.contents[0]
html += "<p>%s</p>\n" % key.nextSibling.contents[0]
html += """</body>
</html>
"""
f = open("song_information.html", "w")
f.write(html)
f.close()
它将以下 HTML 写入 song_information.html 文件:
<!DOCTYPE html>
<html>
<head>
<title>Song information</title>
</head>
<body>
<h1>Track ID</h1>
<p>457</p>
<h1>Name</h1>
<p>Love me do</p>
<h1>Artist</h1>
<p>The Beatles</p>
<h1>Album Artist</h1>
<p>The Beatles</p>
<h1>Composer</h1>
<p>John Lennon/Paul McCartney</p>
<h1>Album</h1>
<p>The Beatles No.1</p>
<h1>Genre</h1>
<p>Varies</p>
<h1>Kind</h1>
<p>AAC audio file</p>
</body>
</html>
当然,这是简化的。如果您需要实现 unicode 支持,您需要像这样编辑它:
from BeautifulSoup import BeautifulStoneSoup
import codecs
f = codecs.open("file.xml", "r", "utf-8")
soup = BeautifulStoneSoup(f.read())
f.close()
html = """<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Song information</title>
</head>
<body>
"""
for key in soup.dict.findAll('key'):
html += "<h1>%s</h1>\n" % key.contents[0]
html += "<p>%s</p>\n" % key.nextSibling.contents[0]
html += """</body>
</html>
"""
f = codecs.open("song_information.html", "w", "utf-8")
f.write(html)
f.close()
此外,您可能需要生成更复杂的 HTML,因此您可能想尝试一些模板系统,例如Jinja2。