首页 > 解决方案 > python lxml:在数据库记录上应用 xslt

问题描述

我想使用 xslt 文件并应用于数据库记录而不是 xml 文件。它必须在python中完成。

例如假设数据库中的表是:

TABLE topic
  id INTEGER
  title CHAR(200)
  body TEXT
  added DATETIME

TABLE comment
  topic_id REFERENCES(topic)
  body TEXT
  added DATETIME

然后我希望像 xml 一样处理 xslt:

<topics>
  <topic>
    <id>1</id>
    <title>First topic</title>
    <body>Topic body</body>
    <added>11-12-2018 08:00:00</added>
  </topic>
  <topic>
     ...
  </topic>
</topics>
<comments>
  <comment>
    ...
  </comment>
</comments>

将数据库行转换为 xml 的问题在于,这些行确实很多(超过 100M),而 xslt 只使用其中的几个(大约 100 个),这些行在调用之间会有所不同。

我看到 lxml 被大量使用,我正在考虑编写一个替代的 ElementTree 类来按需从数据库中获取记录。那可能吗?它是否记录在 lxml 文档中的某处(我找不到)?

是否有其他方法可以使用其他 python 包解决问题(将 xslt 与数据库一起使用)?

标签: pythonsqlxsltlxml

解决方案


推荐阅读