如数据库中有一个字段保存了xml格式的一串字符串:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfPassengerInfoForXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PassengerInfoForXml>
<Person>1</Person>
<Name>张三</Name>
<InsureNumber>2</InsureNumber>
</PassengerInfoForXml>
<PassengerInfoForXml>
<Person>1</Person>
<Name>李四</Name>
<InsureNumber>1</InsureNumber>
</PassengerInfoForXml>
</ArrayOfPassengerInfoForXml>
方法一:js
//字符串转化为xml function toXmlDom(source) { var xmlDoc = null; if (window.ActiveXObject) { var ARR_ACTIVEX = ["MSXML4.DOMDocument", "MSXML3.DOMDocument", "MSXML2.DOMDocument", "MSXML.DOMDocument", "Microsoft.XmlDom"]; var XmlDomflag = false; for (var i = 0; i < ARR_ACTIVEX.length && !XmlDomflag; i++) { try { var objXML = new ActiveXObject(ARR_ACTIVEX[i]); xmlDoc = objXML; XmlDomflag = true; } catch (e) { } } if (xmlDoc) { xmlDoc.async = false; xmlDoc.loadXML(source); } } else { var parser = new DOMParser(); var xmlDoc = parser.parseFromString(source, "text/xml"); } return xmlDoc; }
function getXmlDom(source) { var strXML=""; //strXML为上面的xml格式的字符串 var s = toXmlDom(strXML); $(s).find("PassengerInfoForXml").each( //得到每一个签 function (id, item) { //获取标签的内容 var Person= $(item).find("Person").eq(0).text(); var Name= $(item).find("Name").eq(0).text(); var InsureNumber= $(item).find("InsureNumber").eq(0).text(); alert(Name); } ); }
方法二:asp.net 后台
1) 建一个类PassengerInfoForXml.cs,对应每个标签的字段
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebApplication1 { public class PassengerInfoForXml { public Int32 Person { get; set; } public String Name { get; set; } public Int32 InsureNumber { get; set; } } }
2) 获取每个标签的值
protected List<PassengerInfoForXml> passengerlist = null; string strxml = ""; //上面的xml格式字符串 protected void Button1_Click(object sender, EventArgs e) { passengerlist = ConvertToObject(strxml, typeof(List<PassengerInfoForXml>)) as List<PassengerInfoForXml>; for (int i = 0; i < passengerlist.Count; i++) { var Person = passengerlist[i].Person; var Name = passengerlist[i].Name; var InsureNumber = passengerlist[i].InsureNumber; Response.Write("<script>alert('"+Name+"')</script>"); } } //转换成对象PassengerInfoForXml public static object ConvertToObject(string xml, Type objectType) { object obj2 = null; if (string.IsNullOrEmpty(xml)) { return obj2; } using (StringReader reader = new StringReader(xml)) { XmlSerializer serializer = new XmlSerializer(objectType); return serializer.Deserialize(reader); } }