﻿# 在 JavaScript 的世界裡如何讓 String 與 XML 物件相互轉換

我今天利用一支 jQuery 程式測試一個 Web Service 的回應，突然想要取回的 XML 資料轉成字串印出來看，首先是想的太複雜 (*試不出來就是複雜*)，後來又覺得好簡單 (*原來只要 xmlObject.xml 就可以了*)，但最後還是發現沒有想像中的簡單，而且每個瀏覽器對於 XML 的物件操作也不太一致，問了些朋友與上網找了些資料後，整理成兩個 function 可以彼此互相轉換。

### 將字串轉換成 XML 物件

```javascript
function convert_string_to_xml(strXML)
{
	if (window.ActiveXObject) {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(strXML);
		return xmlDoc;
	} else {
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(strXML,"text/xml");
		return xmlDoc;
	}
}
```

### 將 XML 物件轉換成字串

```
function convert_xml_to_string(xmlObject)
{
	if (window.ActiveXObject) { // for IE
		return xmlObject.xml;
	} else {
		return (new XMLSerializer()).serializeToString(xmlObject);
	}
}
```

**相關連結**

-   Convert XML Document to String in JavaScript
-   [Methods and properties of Microsoft.XMLDOM](http://www.adp-gmbh.ch/web/js/msxmldom/methods_properties.html)
-   [A Beginner's Guide to the XML DOM](http://msdn.microsoft.com/en-us/library/aa468547.aspx)
-   [XMLSerializer - Mozilla Developer Center](https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer)
-   [DOMParser - Mozilla Developer Center](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser)
-   [Parsing and serializing XML](https://developer.mozilla.org/en-US/docs/Web/XML/Guides/Parsing_and_serializing_XML)
