//(记住这个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);
}
}