gpt4 book ai didi

javascript - 在同一个 HTML 页面上显示 HTML 和 XML 内容

转载 作者:行者123 更新时间:2023-11-28 21:22:48 25 4
gpt4 key购买 nike

我有一个 HTML 页面,其中有一个按钮;按下该按钮,将调用 javascript 函数 - 这里会生成一个字符串,它是 xml 的表示形式。我想在同一页面上用按钮表示这个xml,类似于下图所示:! enter image description here

这是我尝试过但没有成功的简化代码(在代码下查看结果 - 没有显示任何内容):

 <html>
<head>
<script type="text/javascript">
function xml_test()
{
var xmlString = "<note><name>Kundan Kumar Sinha</name><place>Bangalore</place><state>Karnataka</state></note>";
var my_div = document.getElementById("labelId");
alert(xmlString)
my_div.innerHTML += xmlString;
}
</script>
</head>

<body>
<input type="button" value="TEST" onclick="xml_test()"/>
<br><br>
<label id="labelId">XML: </label>
</body>
</html>

enter image description here

我也尝试过使用 iframe,但没有 src 属性的文件。我尝试过的是:

<html>
<head>
<script type="text/javascript">
function populateIframe() {
var xml = "<?xml version='1.0' encoding='UTF8' standalone='yes'?><note><name>Kundan Kumar Sinha</name><place>Bangalore</place><state>Karnataka</state></note>";

var iframe = document.getElementById('myIframe');
var idoc= iframe.contentDocument || iframe.contentWindow.document; // IE compat
idoc.open("text/xml"); // I know idoc.open(); exists but about idoc.open("text/xml"); I'm not sure if exists;
idoc.write('<textarea name="xml" rows="5" cols="60"></textarea>');
//idoc.write(xml); // doesn't work
idoc.getElementsByTagName('textarea')[0].value= xml;
idoc.close();
}
</script>
</head>
<body onload="populateIframe();">
<iframe id="myIframe" width="900" height="400"></iframe>
</body>
</html>

结果是: enter image description here

我已经看过 How to display XML in a HTML page as a collapsible and expandable tree using Javascript?我从here中得到了一些想法

谢谢你帮助我!

最佳答案

只需创建 HttpHandler,并在 Iframe 中打开它:

 public class Handler : IHttpHandler
{
#region IHttpHandler Members

public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
XmlSerializer serializer = new XmlSerializer(typeof(Note));
MemoryStream stream = new MemoryStream();

StreamWriter writer = new StreamWriter(stream, Encoding.Unicode);
serializer.Serialize(writer, new Note() { Name = "Kundan Sinha", Place = "Bangalore", State = "Karnataka" });
int count = (int)stream.Length;

byte[] arr = new byte[count];
stream.Seek(0, SeekOrigin.Begin);


stream.Read(arr, 0, count);


UnicodeEncoding utf = new UnicodeEncoding();

stream.Close();
writer.Close();

context.Response.ContentType = "text/xml;charset=utf-8";

context.Response.Write(utf.GetString(arr).Trim());

context.Response.Flush();
}

#endregion
}

public class Note
{
public string Name { get; set; }
public string Place { get; set; }
public string State { get; set; }
}

您可以将收到的 xml 字符串传递到我正在做的地方context.Response.Write('在此处传递 XML 数据');

enter image description here

关于javascript - 在同一个 HTML 页面上显示 HTML 和 XML 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com