2

我正在运行一个带有存储在TextField属性中的 XML 文本的 Django 站点。它被存储为 XML 而不是纯文本,因为它带有大量关于底层手稿的信息,例如缩写和符号。这是一个例子:

class Entry(models.Model):
  # Name and description. 
  chapter = models.ForeignKey(Chapter)
  latin_text = models.TextField()

这是内容的示例latin_text

<initial type="2">I</initial>n <place type="0"><span>Ricmond</span></place> 
ten<abbr type="1">et</abbr> aeccl<abbr type="0">esi</abbr>a
de Cietriz .ii. hid<abbr type="0">as</abbr>. 

我现在想开始在我的 HTML 页面上显示 XML 文本。

我知道我可以通过将原始 XML 放入textarea: 中来显示它,问题是我想以更漂亮的方式显示它,其中:

  • 样式(abbr斜体的所有place元素,粗体的元素)
  • 让用户浏览缩写的 JavaScript 事件(当用户将鼠标悬停在abbrorplace上时,显示弹出说明)

我不确定 XSLT 是否可以满足我的需要,或者是否可以与 HTML 一起使用。所以我的问题是:

  • 在将 XML 添加到 Django 数据库之前,我应该将其转换为 HTML 吗?
  • 或者我可以使用 XSLT 或 JavaScript 即时完成我需要的所有渲染吗?
4

2 回答 2

0

是的,XSLT 会做任何你想做的事情,并且被那些像你一样存储 XML 的人大量使用。这就是 XHTML 出现的原因和方式。适用于那些以 XML 格式存储数据和文本但希望将其呈现给 Web 浏览器的用户。

一旦你以 (X)HTML 形式拥有它,添加和使用 javascript 也没有什么不同。

于 2013-08-07T11:30:08.840 回答
0

我会使用 xslt 对其进行转换,然后使用 javascript 以编程方式附加事件。它是数据,事先转换它可以防止你以后以不同的方式解释它。Html 应该只是布局并与数据分开。您可以使用 Javascript 翻译它,但这对客户端来说会很密集。Xslt 和 css 会更干净,并且在 js 中附加事件是轻量级的。

不熟悉 Django,但也许可以看看这个答案:我可以在 Django 中使用 XSLT 吗?

于 2013-08-07T11:30:43.450 回答