[英]Open XML content in another window, using JavaScript
我知道由於安全限制,我無法將XML內容保存到本地文件。 但有沒有辦法可以在另一個瀏覽器窗口中顯示XML內容,如
Window.Open(xmlString, . .. );
這將起作用 -
Window.Open(URL, . . .);
編輯1:嘗試使用myXmlWindow.document.write(xmlString)
=>我嘗試了建議的代碼 -
var xmlString = xml2Str(xmlDocument);
myXmlWindow = window.open();
myXmlWindow.document.write(xmlString);
myXmlWindow.focus();
但它不顯示整個XML內容,只顯示實習生節點值。 並且新窗口仍顯示“正在連接...”,因為它沒有完成加載內容(缺少關閉標簽???)
也許我需要告訴它是XML內容而不是HTML ???
我的xmlString:
<root><device1>Name</device1><device2/><device3><Temprature_1>23.5</Temprature_1><Temprature_2>23.4</Temprature_2><Temprature_3>23.4</Temprature_3><Temprature_4>23.3</Temprature_4><Temprature_5>23.2</Temprature_5></device3></root>
顯示的內容:
Name23.523.423.423.323.2
編輯2:我的代碼 -
function xml2Str(xmlNode) {
try {
// Gecko- and Webkit-based browsers (Firefox, Chrome), Opera.
return (new XMLSerializer()).serializeToString(xmlNode);
}
catch (e) {
try {
// Internet Explorer.
return xmlNode.xml;
}
catch (e) {
//Other browsers without XML Serializer
// alert('Xmlserializer not supported');
return('Xmlserializer not supported');
}
}
return false;
}
function fShow_xml_in_win() {
var xmlDocument = $.parseXML("<root/>");
var dev1 = xmlDocument.createElement('device1');
var dev2 = xmlDocument.createElement('device2');
var dev3 = xmlDocument.createElement('device3');
dev1.appendChild(xmlDocument.createTextNode('Name'));
xmlDocument.documentElement.appendChild(dev1);
xmlDocument.documentElement.appendChild(dev2);
xmlDocument.documentElement.appendChild(dev3);
var i;
var xNode;
for (i = 0; i < 5; i++) {
xNode = xmlDocument.createElement('Temprature_' + (i+1));
xNode.appendChild(xmlDocument.createTextNode( "myVal " + ((i+1) * 10) ));
dev3.appendChild(xNode);
}
var xmlString = xml2Str(xmlDocument);
alert(xmlString);
xmlString = "<?xml version='1.0' ?>" + xmlString; // I do not know how to add this node using parseXML :(
alert(xmlString);
myXmlWindow = window.open();
myXmlWindow.document.write(xmlString);
myXmlWindow.document.close(); // !! EDIT 3
myXmlWindow.focus();
return false;
}
編輯3:解決了“連接......”問題
我只需要添加myXmlWindow.document.close();
您可以打開一個空白窗口,然后按如下方式將內容寫入其中:
myWindow=window.open('','','width=200,height=100')
myWindow.document.write(xmlString);
myWindow.focus()
您可能需要做一些工作來格式化xmlString,但我認為這種方法可以滿足您的需求。 如果格式化了xmlString,請嘗試添加:
<?xml version="1.0" ?>
到你的字符串的開頭。
我的帖子中的理解是
1.(從你的第一點)你從某個不受你控制的地方得到xml。 我的建議是你為什么不得到JSON?
2.(從第二點開始)如果這些XML是由您創建的,那么為什么不嘗試從引用中編寫這些XML? 例如:
var reference = window.open();
reference.document.write(<some string goes here>)
3.(從第三點開始)根據你的第二點的理解。 您可以創建xml。 那么為什么你在寫完文件后會改變?
注意:通常,XML用於服務器到服務器的通信,JSON用於服務器到客戶端(瀏覽器)的通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.