在HTML页面中显示XML字符串

时间:2011-11-07 13:16:38

标签: jquery html xml asp.net-mvc-3

从我的后端我检索一个包含一些xml数据的字符串。当我显示它(现在只使用@ Model.XM)时,我看到一个包含xml数据的漂亮的长字符串。无论如何将格式化为树结构?喜欢jquery插件或什么?我尝试了一些谷歌,但无法找到它。

在页面上也是其他数据,它不仅是xml数据。

2 个答案:

答案 0 :(得分:1)

您需要的只是一个递归循环,它将XML文档的子节点转换为HTML列表元素。尝试这样的事情(未经测试):

var html = '<ul><li>' + xml.documentElement.nodeName + '</li>';
var html += displayTree(xml);
var html += '</ul>';

function displayTree(xml) {
    var str = '';
    if ($(xml).children().length) {
        str += '<ul>';
        $(xml).children().each(function() {
            str += '<li>' + this.nodeName + '</li>';
        });
        str += '</ul>';
        str += displayTree(xml.childNodes);
    });
    return str;
}

答案 1 :(得分:-1)

您可以使用XSLT。

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

    <xsl:template match="node()|@*">
      <xsl:copy>
        <xsl:apply-templates select="node()|@*"/>
      </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

关键是

<xsl:output indent="yes"/>

如果将上述转换应用于XML,它将正确缩进。 更多详情:http://www.w3.org/TR/xslt#copying