string orderNo = this.IndexwaybillNo.Value; string clientId = "abc"; string logisticProviderID = "cbc"; string xml = ""; string[] rs = orderNo.Split('/'); xml = "<BatchQueryRequest>" + "<logisticProviderID>" + logisticProviderID + "</logisticProviderID>" + "<clientID>" + clientId + "</clientID>" + "<orders>" + "</orders>" + "</BatchQueryRequest>"; foreach (string s in rs) { if (s.Length < 10 || !IsNumberic(s)) { this.lblTime.Text = ""; Common.Alert("运单号输入不正确,请输入10位正确运单号"); } else { orderNo = s; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml); XmlNode xmlNode = xmlDoc.SelectSingleNode("BatchQueryRequest/orders"); if (xmlNode != null) { XmlElement newElement = xmlDoc.CreateElement("order");//添加order节点 XmlElement etitle = xmlDoc.CreateElement("mailNo"); //添加mailNo节点 etitle.InnerText = orderNo.ToString(); //Common.Alert(etitle); newElement.AppendChild(etitle); xmlNode.AppendChild(newElement); } xmlDoc.Save(xml); } }
我想给orders节点下循环添加多个order节点
实现以下效果
<BatchQueryRequest> <logisticProviderID>cbc</logisticProviderID> <clientID>abc</clientID> <orders> <order> <mailNo>1000000001</mailNo> </order> <order> <mailNo>1000000002</mailNo> </order> <order> <mailNo>1000000003</mailNo> </order> </orders> </BatchQueryRequest>
到了xmlDoc.save(xml)就报错了。错误提示:路径中具有非法字符。
xmlDoc.save(xml)这里有问题,xmlDoc.save(filename)这里参数应该是带路径的文件名
那我该怎么写呢。
save.LoadXml
谢谢啊
@猪头猪脑: 带路径的文件名啊,你要把这段XML内容保存在哪儿,名字是什么就传什么啊
@菜鸟程序猿: 我现在写的xml直接写在页面里面了。
@猪头猪脑: 该如何用save方法呢
@猪头猪脑: 如果是是要讲xml显示在页面上,就用dudu说的方法,如果是要讲它保存到磁盘上的某一个地方,就用我说的方法。
你是要将xml显示到页面上吧,代码如下:
Response.ContentType = "text/xml"; xmlDoc.Save(Response.Output);
xmlDoc.Save(Server.MapPath("~/"+文件路径));