//(記住這個xml檔案不能在用戶端儲存哦,可以放到一個hiddenFile裡)
function CreateXmls()
{
var rowsArray = document.all('tblList').rows;//得到這個表的所有行
var oxml=new ActiveXObject("Microsoft.XMLDOM"); //建立一個xml對象
oxml = document.createElement("Data");//建立一個"data"元素<data></data>
for(var i=1;i<rowsArray.length;i++)
{
if(rowsArray[i].cells[1]==null||rowsArray[i].cells[3]==null||rowsArray[0].cells[2]==null)break;
oItem = oxml.appendChild(document.createElement("Item"));//建立Item元素並把它做為data的子節點
ItemId = oItem.appendChild(document.createElement("ItemId"));//建立ItemId元素並把它做為Item的子節點
ItemName = oItem.appendChild(document.createElement("ItemName"));"));//建立ItemName 元素並把它做為Item的子節點
ItemType = oItem.appendChild(document.createElement("ItemType"));//建立ItemType元素並把它做為Item的子節點
ItemId.appendChild(document.createTextNode(rowsArray[i].cells[2].innerText));//建立文本節點並把它做為ItemId的子節點
ItemName.appendChild(document.createTextNode(rowsArray[i].cells[3].innerText));
ItemType.appendChild(document.createTextNode(rowsArray[i].cells[1].innerText));
}
//rowsArray[i].cells[2].innerText:表示當前行的第三列的innerText值
var hidValue=document.getElementById("ctl00_ContentPlaceHolder1_hidXmlString");
hidValue.value= oxml.outerHTML;
}
//*innerHTML ,...區別
innerHTML 設定或擷取位於對象起始和結束標籤內的 HTML
outerHTML 設定或擷取對象及其內容的 HTML 形式
innerText 設定或擷取位於對象起始和結束標籤內的文本
outerText 設定(包括標籤)或擷取(不包括標籤)對象的文本
innerText 和outerText 在讀取得時候是一樣的,只是在設定的時候outerText 會連帶標籤一起替換成目標文本
firefox不支援innerText ,但是可以用textContent作為替代方案。
//測試
<div id="div"><font color="green"><h2>This is a DIV!</h2></font></div>
<input name="innerHTML" value="innerHTML" type="button" OnClick="alert(div.innerHTML);">//結果:"><font color="green"><h2>This is a DIV!</h2></font>
<input name="outerHTML" value="outerHTML" type="button" OnClick="alert(div.outerHTML);">//結果:<div id="div"><font color="green"><h2>This is a DIV!</h2></font></div>
<input name="innerText" value="innerText" type="button" OnClick="alert(div.innerText);">
<input name="outerText" value="outerText" type="button" OnClick="alert(div.outerText);">
*/
//建立出來的xml
<data>
<item>
<itemId>1</itemId>
<ItemName>ff</ItemName>
<ItemType>1</ItemType>
<item>
<item>
<itemId>1</itemId>
<ItemName>ff</ItemName>
<ItemType>1</ItemType>
<item>
.......
</data>
//伺服器端讀xml儲存到資料庫:
protected void saveXmlTodatabase()
{
string xmlString = this.hidXmlString.Value.Trim(); //從hiddenbutton裡將xml取出來
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);//載入成一個xml檔案
XmlNodeList rootList = doc.SelectSingleNode("Data").ChildNodes;
Dictionary promotion = new Dictionary();
bool flag = false;
foreach (XmlNode xFNode in rootList)
{
XmlElement xe1 = (XmlElement)xFNode;
XmlNodeList xItemList=xe1.ChildNodes;//繼續擷取xe子節點的所有子節點
foreach (XmlNode xNnode in xItemList)
{
XmlElement xe = (XmlElement)xNnode;
if (xe.Name.ToLower() == "itemid")
{
promotion["promo_rank"] = xe.InnerText;
}
if (xe.Name.ToLower() == "itemname")
{
promotion["promo_name"] = xe.InnerText;
}
if (xe.Name.ToLower() == "itemtype")
{
promotion["promo_type"] = xe.InnerText;
}
}
flag=BLLSales.AddOrUpdatePromotionByRank(promotion, Enums.DataAccessMode.Update);
}
}