css - 如何将 HTML 语义分配给我的 XML 元素以使其在我的网络浏览器中呈现?

标签 css xml dtd

我有一个这样的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<todo>
    <list><item>first</item><item>second</item></list>
    <list><item>first</item><item>second</item></list>
</todo>

现在我想在浏览器中查看文件。我想要 <list>元素呈现为 <ul> html 元素,<item><li> 这样的元素html元素。我知道我可以使用 xslt 将 xml 转换为 html 文档。但是:有没有办法直接将 html 语义分配给我列表的元素,例如使用 css(类似于 list{display:ul})或 dtd?

最佳答案

是的,这是可能的。

参见 W3C-Website Style Sheets with XML .

您可以使用 CSS 为每个 XML 元素声明浏览器应如何显示它。但是你必须比 HTML 更冗长,因为对于纯 XML 没有预定义的样式。

在 XML header 中添加对 CSS 文件的引用:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="todo.css"?>
<todo>
   <list><item>first</item><item>second</item></list>
   <list><item>first</item><item>second</item></list>
</todo>

这是一个示例 CSS 文件 (todo.css):

todo {
  display: block;
}

list {
  display: block;
  padding-left: 5mm;
  margin-top: 1cm;
}

item {
  display: list-item;
  list-style-type: circle;
}

您可以为每个元素定义显示 样式(blockinlinenone列表项).

对于 display: list-item 你还可以使用样式

  • list-style-image: url(bullet.gif) 贴上子弹图标图形
  • list-style-image 的值为 insideoutside
  • list-style-type,值为 circlediscsquarenone

关于css - 如何将 HTML 语义分配给我的 XML 元素以使其在我的网络浏览器中呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6547785/

相关文章:

java - 如何在不验证或检查 DTD 的情况下设置系统和公共(public) ID?

Javascript - ff 和 ie margin-top 问题

javascript - 是否可以在 Ext.grid.column.Action 中垂直对齐

javascript - 浏览器支持 getElementsByTagNameNS

android:scrollHorizo​​ntally 不适用于 Samsung Galaxy Nexus

xml - 在 XML 中使用 #Required 关键字和枚举值

php - css div 未被识别

css - 使搜索全宽的最佳方式

PHP生成XML,获取文档末尾的Extra内容

java - Sun 是否已弃用 Java DTD URL?