(1).在server遠端伺服器有個18-CrossDomain03-xml.js,裡面的xml內容,不可以有換行符號(傳統的xml檔案,每個標籤之後都會換行)
(2).這種讀進跨網域*.js技術,缺點是:必須在clinet網頁,網頁一打開onload時,就讀進跨網域*.js裡面的全部資料(因為<script type="text/javascript" src="http://.....js">),必須放在<body>...</body>的最後面,也就是網頁一打開,<body>一顯示,就會執行跨網頁的所有*.js
(3).可以發現讀取xml的過程比讀取json要麻煩多了:
*json資料:將字串轉成json物件後,直接就是傳統的物件陣列,
即可使用。
*xml資料:
第1步:將字串轉成xml物件後(此時只是節點資料),
第2步:進一步聚焦在尋找個節點xmlnode, 例如 <personnel>
xmlnode=xmlDoc.getElementsByTagName("personnel");)
第3步:在將這個聚焦節點xmlnode,轉成傳統的物件陣列,才能使用。
在server遠端伺服器有個18-CrossDomain03-xml.js,裡面程式碼的內容是
callBackdata(callBackdata("<?xml version='1.0' standalone='yes'?><mycompany><personnel><id>1</id>......."); |
<html xmlns="http://www.w3.org/1999/xhtml"> function callBackdata(txt){ //讀進標籤是personnel的所有節點
var xmlObj; for (i=0;i<xmlObj.length;i++) </head> <script type="text/javascript" src="http://acupun.site/lecture/jquery_phoneGap/18-CrossDomain03-xml.js"> </body> |
注意:
(1).
<script type="text/javascript" src="*.js....>要放在</body>的最下面,
舉例:<div class="purple1" id="id01"></div>若放在<script type="text/javascript" src="*.js....>的下面,則無法在id01處顯示文字
結論:程式控制所顯示的元件,若在<script type="text/javascript" src="*.js....>的下面,都無法顯示
//將字串轉成xmlDoc節點變數 |
//尋找個節點xmlnode, 例如 <personnel> xmlnode=xmlDoc.getElementsByTagName("personnel");) |
//方法2: xmlDoc = $.parseXML(txt)
//將字串轉成xmlDoc節點變數 |
//尋找個節點xmlnode, 例如 <personnel> var $xml = $(xmlDoc); var $xmlnode = $xml.find('personnel'); |
//將xmlDoc節點變數,轉成xmlObj物件變數件陣列 |
//將字串轉成xmlDoc節點變數 |
//將xml物件轉成string文字 |
//將字串轉成xmlDoc節點變數 |