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

Css 如何将HTML语义分配给XML元素,以便在web浏览器中呈现它们?,css,xml,dtd,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&g

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

第一秒
第一秒

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

    不,XML不是html。如果要将XML显示为HTML,则需要使用XSLT对其进行转换。

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

    是的,这是可能的

    您可以使用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>
    
    对于每个元素,您可以定义
    显示
    样式(
    内联
    列表项

    对于
    显示:列表项
    ,您还可以使用样式

    • 列表样式图像:url(bullet.gif)
      用于标记项目符号图标图形
    • 列表样式图像
      ,带有值
      内部
      外部
    • 列表样式类型
      带有值的
      圆圈
      圆盘
      正方形

    但是有xhtml。他们如何在不进行转换的情况下渲染其内容?xhtml是一种特例,硬编码到浏览器中吗?是的。(顺便说一句,您可以对任意XML应用样式,但无法赋予它HTML语义。)XHTML是遵循更严格的XML格式规则的HTML。当然,这是一个非常笼统的解释;这比那要复杂得多。只是为了确保我能理解。当浏览器解析我的xml并识别来自xhtml名称空间(例如ul)的元素时,它会对其执行一些特殊的操作(将其呈现为列表),我无法为自己名称空间的元素启用这些操作。对吗?创建自己的DTD或名称空间只允许您指定哪些内容将由自定义标记封装。示例:
    。它不会更改浏览器渲染它的方式。浏览器将XML显示为XML,将HTML显示为HTML。如果您希望它显示为HTML,则需要以HTML格式发送到浏览器。这是我希望的。是否也有表单元素的显示样式,如或?或者查找?在此处查找所有可能的
    显示值的列表:表有选项,但似乎无法呈现表单元素。为此,最好使用XSLT之类的工具。
    
    todo {
      display: block;
    }
    
    list {
      display: block;
      padding-left: 5mm;
      margin-top: 1cm;
    }
    
    item {
      display: list-item;
      list-style-type: circle;
    }