2012-01-04 34 views
0

我想显示我的浏览器的HTML XML Ajax响应。然而,我需要的是显示实际的xml本身,即具有元素的完整树与内容不仅仅是节点的内容。显示实际的XML与节点作为HTML但浏览器友好

所以我想显示的XML作为浏览器如:

<element>content</element> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
//etc more nested elements some with atrributes etc 

我有一个会显示文字,但没有任何人有一个XSL样式表,简单地遍历XML并输出到一个样式表浏览器和缩进等一样。

谢谢

回答

0

这是由浏览器自动执行的。举例来说,如果我创建一个文件的test.xml,并把这个在它:

<a> 
    <element>content</element> 
    <element1> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
    <element2>niijojoi</element2> 
    </element1> 
</a> 

,并在谷歌浏览器打开它,它显示了压痕的XML层次结构。

+0

是的,你是对的。但是,只有在你说的时候,我们才能在浏览器中打开文件。我需要的是将XML作为网页本身的一部分进行显示,换句话说就像文本片段与其他网页html内容一起显示。在这种情况下,浏览器无法渲染xml,因为它会感到困惑,并不知道如何处理标签。这适用于所有浏览器。 – user983022 2012-01-04 21:36:19

1

如果您通过Ajax获取XML,只需将结果放在textarea中,然后根据需要设置textarea的样式。

textarea { 
 
    background: #eee; 
 
    width: 500px; 
 
    height: 200px; 
 
}
<textarea> 
 
    
 
    <note> 
 
    <to>Tove</to> 
 
    <from>Jani</from> 
 
    <heading>Reminder</heading> 
 
    <body>Don't forget me this weekend!</body> 
 
    </note> 
 
    
 
</textarea>

+0

但这似乎不保持与我的xml? – user983022 2012-01-06 11:03:25

1

假设你通过AJAX让你的XML并希望将其注入到页面上的元素(一个<pre>元素将使意义),所有你所要做的就是更换<字符与注射的内容纳入<pre>元素的innerHTML&lt;实体:

// "result" is the data from the AJAX request. 
$('#xml').innerHTML = result.replace('<', '&lt;'); 
相关问题