我想转换像这样的xml元素:
<asin>B0013FRNKG</asin>
在javascript中输入字符串
我使用XMLSerializer
:
new XMLSerializer().serializeToString(xml);
字符串仅显示在alert()和控制台中。在页面上它只是说
[object Element][object Element]
我想获得字符串。
答案 0 :(得分:40)
您还没有告诉我们您如何展示该对象。 XMLSerializer适用于DOM节点,因此必须在某处添加对象,例如:
document.getElementById('SomeDiv').appendChild(xml);
如果您只想显示完整的xml字符串:
var xmlText = new XMLSerializer().serializeToString(xml);
var xmlTextNode = document.createTextNode(xmlText);
var parentDiv = document.getElementById('SomeDiv');
parentDiv.appendChild(xmlTextNode);
答案 1 :(得分:5)
<script type='text/javascript'>
function xmlToString(xmlData) {
var xmlString;
//IE
if (window.ActiveXObject){
xmlString = xmlData.xml;
}
// code for Mozilla, Firefox, Opera, etc.
else{
xmlString = (new XMLSerializer()).serializeToString(xmlData);
}
return xmlString;
}
</script>
在IE的情况下使用它来解决浏览器兼容性问题。
答案 2 :(得分:4)
function getXmlString(xml) {
if (window.ActiveXObject) { return xml.xml; }
return new XMLSerializer().serializeToString(xml);
}
alert(getXmlString(xml));
答案 3 :(得分:2)
您是否尝试将结果包含在......
中(new XMLSerializer()).serializeToString(xml)
另外,我会使用控制台来更好地查看内容:
console.log((new XMLSerializer()).serializeToString(xml));
答案 4 :(得分:0)
如果DOM元素<asin>B0013FRNKG</asin>
存储在对象element
中,那么您可以使用以下方法访问该值:
element.textContent
答案 5 :(得分:0)
按照此方法进行打印,将来自xml数据的数据附加到javscript
中作为字符串存储txt="<papers>"+"<paper>"+
"<author>athor name</author>"+
"<title>title</title>"+
"<path>path</path>"+
"<track>which tack</track>"+
"</paper>"+
"<paper>"+
"<author>athor name</author>"+
"<title>title</title>"+
"<path>path</path>"+
"<track>which tack</track>"+
"</paper>"+
"<paper>"+
"<author>athor name</author>"+
"<title>title</title>"+
"<path>path</path>"+
"<track>which tack</track>"+
"</paper>"+
"<papers>";
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
}
x=xmlDoc.getElementsByTagName("paper");
for (var i = 0; i < x.length; i++) {
var athor =x[i].childNodes[0].firstChild.nodeValue;
var title = x[i].childNodes[1].firstChild.nodeValue;
var path = x[i].childNodes[2].firstChild.nodeValue;
var tack =x[i].childNodes[3].firstChild.nodeValue;
//do something with these values...
//each iteration gives one paper details
var xml=document.getElementById("element_id");//<div id="element_id"></div>
var li = document.createElement("br");// create a new <br>
newlink = document.createElement('A'); // creating an <a> element
newlink.innerHTML = athor;// adding <a>athor value here</a>
newlink.setAttribute('href', path);// <a href="path"></a>
newlink.appendChild(li);// <a href="path">athor</a><br>
document.getElementById("element_id").appendChild(newlink);//finaly it becomes <div id="element_id"><a href="path">athor</a><br></div>
}