大家好!我要读取一个省市县级别的xml文档并赋值给三个dropdownlist可是不知道该怎么读取xml?请大家帮忙.....
xml:<?xml version="1.0" encoding="utf-8" ?>
- <area Country="China">
- <province ID="1" provinceID="110000" province="北京市">
- <City CityID="110100" City="市辖区">
<Piecearea PieceareaID="110101" Piecearea="东城区" />
<Piecearea PieceareaID="110102" Piecearea="西城区" />
<Piecearea PieceareaID="110103" Piecearea="崇文区" />
<Piecearea PieceareaID="110104" Piecearea="宣武区" />
<Piecearea PieceareaID="110105" Piecearea="朝阳区" />
xml:<?xml version="1.0" encoding="utf-8" ?>
- <area Country="China">
- <province ID="1" provinceID="110000" province="北京市">
- <City CityID="110100" City="市辖区">
<Piecearea PieceareaID="110101" Piecearea="东城区" />
<Piecearea PieceareaID="110102" Piecearea="西城区" />
<Piecearea PieceareaID="110103" Piecearea="崇文区" />
<Piecearea PieceareaID="110104" Piecearea="宣武区" />
<Piecearea PieceareaID="110105" Piecearea="朝阳区" />
根节点是那个啊?
- <province ID="1" provinceID="110000" province="北京市">
- <City CityID="110100" City="市辖区">
<Piecearea PieceareaID="110101" Piecearea="东城区" />
<Piecearea PieceareaID="110102" Piecearea="西城区" />
<Piecearea PieceareaID="110103" Piecearea="崇文区" />
<Piecearea PieceareaID="110104" Piecearea="宣武区" />
<Piecearea PieceareaID="110105" Piecearea="朝阳区" />
<Piecearea PieceareaID="110106" Piecearea="丰台区" />
<Piecearea PieceareaID="110107" Piecearea="石景山区" />
<Piecearea PieceareaID="110108" Piecearea="海淀区" />
<Piecearea PieceareaID="110109" Piecearea="门头沟区" />
<Piecearea PieceareaID="110111" Piecearea="房山区" />
<Piecearea PieceareaID="110112" Piecearea="通州区" />
<Piecearea PieceareaID="110113" Piecearea="顺义区" />
<Piecearea PieceareaID="110114" Piecearea="昌平区" />
<Piecearea PieceareaID="110115" Piecearea="大兴区" />
<Piecearea PieceareaID="110116" Piecearea="怀柔区" />
<Piecearea PieceareaID="110117" Piecearea="平谷区" />
</City>
- <City CityID="110200" City="县">
<Piecearea PieceareaID="110228" Piecearea="密云县" />
<Piecearea PieceareaID="110229" Piecearea="延庆县" />
</City>
</province>
</area>
<area>
<province>
<city>
<Piecearea >
</Piecearea >
</city>
</province>
</area>
是这种格式的?帮帮忙吧!谢了!
// t1.innerText="";//清空表格
var xml=xmlHttp.responseXML
if(xml==null)return;
var root=xml.documentElement;//得到xml文档对象
var list=document.getElementById("gvdiv");
var s="<table id='xmlTable' border='1' cellpadding='0' cellspacing='0' bordercolor='#F7CEFF' style:'border-collapse:collapse align=center'><tr><TD bgColor='#FAF0FF' width='40' height='25' align=center>序号</td><TD bgColor='#FAF0FF' width='130' height='25' align=center>配色代码</TD><TD bgColor='#FAF0FF' width='150' height='25' align=center>中文名称</TD><TD bgColor='#FAF0FF' width='250' height='25' align=center>英文名称</TD><TD bgColor='#FAF0FF' height='25' width='100' align=center>操作</TD></tr>";
if(root) //如果存在
{
//遍历每条数据,添加到频道数组中
for(var i=0;i<root.childNodes.length;i++){//遍历行
var rootlist=root.childNodes[i];
var s1="<tr>";
s1+="<TD bgColor='#FAF0FF' height='25'>"+rootlist.childNodes[0].text+"</TD>";
s1+="<TD bgColor='#FAF0FF' height='25'>"+rootlist.childNodes[1].text+"</TD>";
s1+="<TD bgColor='#FAF0FF' height='25'>"+rootlist.childNodes[2].text+"</TD>";
s1+="<TD bgColor='#FAF0FF' height='25'>"+rootlist.childNodes[3].text+"</TD>";
s1+="<TD bgColor='#FAF0FF' height='25'><a href=\"javascript:Goto();\" onclick='{if(confirm(\"确定要删除【配色明细单】吗?\")) {deleteCurrentRow(this); }else {}}'>删除</a></TD>";
s1+="</tr>";
s+=s1;
}
}
list.innerHTML=s+"</table>";
}给你参考下,用js读取
function createXmlHttpRequest()
{
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
if(xmlHttp.overrideMimeType){
xmlHttp.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(!xmlHttp){
window.alert("你的浏览器不支持创建XMLhttpRequest对象");
}
return xmlHttp;
}
function Goto(){}
function deleteCurrentRow(obj){
var tr=obj.parentNode.parentNode;
var tbody=tr.parentNode;
tbody.removeChild(tr);
}
public static string GetXML_XmlTextReader(string keyName)
{
//XMLTextReader读取XML文件
XmlTextReader xmltextreader = new XmlTextReader(System.Web.HttpContext.Current.Server.MapPath("phonebook.xml"));
if (keyName == "")
{
string outMsg = "";
string currentNodeName = "";
int i = 1;
//利用xmltextreader对象的Read()方法循环读取文件的节点
while (xmltextreader.Read())
{
//当节点类型是元素的时候,记录该节点名称
if (xmltextreader.NodeType == System.Xml.XmlNodeType.Element)
{
currentNodeName = xmltextreader.LocalName.ToString();
}
if (xmltextreader.NodeType == System.Xml.XmlNodeType.Text)
{
//把这个人的属性组织成文本串,便天页面输出
outMsg += "<tr bgColor=#fff5b1><td>" + currentNodeName + "</td><td>" + xmltextreader.Value + "</td></tr>";
}
if (xmltextreader.NodeType == System.Xml.XmlNodeType.Element && xmltextreader.LocalName.Equals("member"))
{
outMsg += "<tr><td>联系人:</td><td><font color=red>(" + (i++) + ")</font></td></tr>";
}
}
outMsg = "<table>" + outMsg + "</table>";
//关闭xmltextreader
xmltextreader.Close(); //显示联系人的详细信息
//Response.Write(outMsg);
return outMsg;
}
else
{
//XmlTextReader xmltextreader = new XmlTextReader(System.Web.HttpContext.Current.Server.MapPath("phonebook.xml"));
bool findflag = false;
string outMsg = "<table><tr><td collspan=2><font color=red>已经查找到下列联系人:</font></td></tr>";
string currentNodeName = "";
//利用xmltextreader对象的Read()方法自我表现读取文件的节点
while (xmltextreader.Read())
{
//当找到了要查找的人,并且当前节点为元素,并且节点名称为"member"时退出循环
if (findflag == true && xmltextreader.NodeType == System.Xml.XmlNodeType.Element && xmltextreader.LocalName.Equals("member"))
{
break;
}
//当节点类型是元素的时候,记录该节点名称
if (xmltextreader.NodeType == System.Xml.XmlNodeType.Element)
{
currentNodeName = xmltextreader.LocalName.ToString();
}
//还没有查找到指定的人,并且当前节点类型为文本,并且当前节点的节点值与要查找的人符合时
if ((findflag == false) && (xmltextreader.NodeType == System.Xml.XmlNodeType.Text) && (xmltextreader.Value == keyName))//当为文本类型同时对应的值为要查找的人的时候
{
findflag = true;//设置找到了要查找的人的标志
}
//如果已经找到,并且当前节点类型为文本时,循环记录这个人的所有信息
if (findflag == true && xmltextreader.NodeType == System.Xml.XmlNodeType.Text)
{
outMsg += "<tr bgcolor=#fff5b1><td align=right>" + currentNodeName + ":</td><td>" + xmltextreader.Value + "</td></tr>";
}
//如果已经找到了这个人,同时Xtr当前为文本类型,那么
}
//关闭xmltextreader
xmltextreader.Close();
outMsg += "</table>"; //显示查找的人的详细信息
//Response.Write(outMsg);
return outMsg;
}
}
//利用XmlNodeReader实现查找的程序
public static string GetXML_XmlNodeReader(string keyName)
{
XmlDocument xml = new XmlDocument();
bool findNode = false; try
{
xml.Load(System.Web.HttpContext.Current.Server.MapPath("phonebook.xml"));
}
catch
{ } XmlNodeReader read = new XmlNodeReader(xml);
while (read.Read())
{
if (read.NodeType == System.Xml.XmlNodeType.Element && read.LocalName.ToString().Equals(keyName))
{
read.Read();
if (read.NodeType == System.Xml.XmlNodeType.Text)
{
//Response.Write(read.Value);
return read.Value;
//break;
}
}
}
return "";
}
读XML的方法,参考一下吧