在div元素中呈现XML内容

时间:2013-01-02 19:40:03

标签: html css xml

我有一个表示餐馆菜单的XML文件,我想在HTML文件的div元素中呈现它的内容。我必须只使用HTML5和CSS3。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:4)

试试这个:

<embed src="file.xml" />

答案 1 :(得分:3)

扩展Praveen的答案(主要是为了提供更完整的代码示例),实际上可以使用以下方法显示XML内容并使用CSS对其进行样式化:

foo.html

    

<head>
    <title>test</title>
</head>

<body>
    <object data="foo.xml" />
</body>

</html>

foo.xml

<?xml-stylesheet type="text/css" href="foo.css"?>
<foo>
    abc
    <bar>def</bar>
    ghi
</foo>

foo.css

bar {
    color: red;
}

你可能不得不忍受这种并不适用于所有浏览器,因为没有标准的方法我知道在不使用编程语言的情况下从HTML转换XML文档。 (虽然以上适用于FF,Chrome和IE。)

也就是说,除非将XML复制粘贴到HTML文档的正文中。 (严格来说,技术上不包括XML,但是一堆“无效”的HTML标签恰好看起来很像XML。这是可能的,因为HTML为了向前兼容而明确允许未知标签,并且从HTML5开始允许一些XML主义,如自闭合标记,以与XHTML兼容。)即以下是完全合法的,应该完成与上面的例子相同,虽然它仍然让我模糊不安:

foo2.html

<html>

<head>
    <title>test</title>
    <style type="text/css">
    bar {
        color: red;
    }
    </style>
</head>

<body>
    <!-- Contents of foo.xml go here -->
    <foo>
        abc
        <bar>def</bar>
        ghi
    </foo>
</body>

</html>

也就是说,这两个都不像使用XSLT那样愚蠢,因为它实际上可以弄清楚发生了什么。