Конвертировать XML в строку и добавить на страницу

Я хочу преобразовать элемент xml следующим образом:

<asin>​B0013FRNKG​</asin>​

чтобы строка в JavaScript

я использовалXMLSerializer:

new XMLSerializer().serializeToString(xml);

строка отображается только в alert () и в консоли. На странице просто сказано

[object Element][object Element]

Я хочу получить строку.

 Anurag28 мар. 2012 г., 00:56
ты хочешь получить"<asin>​B0013FRNKG​</asin>​", или же"B0013FRNKG"?
 rzcl28 мар. 2012 г., 01:22
Я предпочитаю просто "B0013FRNKG"

Ответы на вопрос(6)

Решение Вопроса

как вы показываете этот объект. 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);
 rzcl28 мар. 2012 г., 01:24
Это сработало! Спасибо. Я не знал оcreateTextNode часть. Я думал, что XML можно использовать как JSON.
function getXmlString(xml) {
  if (window.ActiveXObject) { return xml.xml; }
  return new XMLSerializer().serializeToString(xml);
}
alert(getXmlString(xml));
<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>    

 Chris Walsh23 сент. 2016 г., 15:31
Некоторое время я использовал именно этот код, но я столкнулся с клиентом, работающим с IE10 в Win7. У них есть «использовать natvie XMLHTTP», проверенные в настройках Интернета (не то, что в данном случае уместно). Однако "window.ActiveXObject" оценивается как правдивый, но xmlData.xml возвращаетне определено, Есть идеи почему?

Если элемент DOM<asin>​B0013FRNKG​</asin>​ хранится в объектеelement, затем вы можете получить доступ к значению, используя:

element.textContent

как в ...

(new XMLSerializer()).serializeToString(xml)

Кроме того, я бы использовал консоль вместо этого, чтобы лучше видеть контент:

console.log((new XMLSerializer()).serializeToString(xml));

чтобы напечатать, добавить данные из данных XML, сохраненных в виде строки внутри JavaScript

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>


}

Ваш ответ на вопрос