如何将HTML语义分配给我的XML元素,以便在我的web浏览器中呈现它们



我有一个这样的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?

是的,这是可能的。

请参阅带XML的W3C网站样式表。

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

在XML头中添加对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;
}

对于每个元素,可以定义display样式(blockinlinenonelist-item(。

对于display: list-item,您可以额外使用样式

  • list-style-image: url(bullet.gif)可贴花项目符号图标图形
  • 值为insideoutsidelist-style-image
  • 值为circlediscsquarenonelist-style-type
不,XML不是HTML。如果要将XML显示为HTML,则需要使用XSLT对其进行转换。

您不能将XML显示为HTML。使用一些转换实用程序(XSLT(。

最新更新