在asp.net中读取XML文件

作者:网络 来源:佚名 更新时间:2008-05-08 10:16:41 点击:

读:
//打开某文件(假设web.config在根目录中)
string filename=server.mappath("/") + @"webapplication1\web.config";
xmldocument xmldoc= new xmldocument();
xmldoc.load(filename);

//得到顶层节点列表
xmlnodelist topm=xmldoc.documentelement.childnodes;
foreach(xmlelement element in topm)
{
if(element.name.tolower()=="appsettings")
{

//得到该节点的子节点
xmlnodelist nodelist=element.childnodes;

if ( nodelist.count >0 )
{
//dropdownlist1.items.clear();

foreach(xmlelement el in nodelist)//读元素值
{
//dropdownlist1.items.add(el.attributes["key"].innerxml);
//this.textbox2.text=el.attributes["key"].innertext;
this.textbox2.text=el.attributes["key"].value;
this.label1.text=el.attributes["value"].value;


//同样在这里可以修改元素值,在后面save。
// el.attributes["value"].value=this.textbox2.text;
}


}

}

}

xmldoc.save(filename);

在某节点下增加一个元素,并设置值:

if(element.name.tolower()=="appsettings")
{

xmlelement elem =xmldoc.createelement("add");

element.appendchild(elem);
elem.innertext="ltp";

xmldoc.save(filename);

}

效果:
<appsettings>
<add key="密码" value="admin" />
<add>ltp</add>
</appsettings>

在某节点下增加一个元素,并增加两个属性:
if(element.name.tolower()=="appsettings")
{

xmlelement elem =xmldoc.createelement("add");
element.appendchild(elem);

xmlattribute xa=xmldoc.createattribute("key");
xa.value="ltp";

xmlattribute xa2=xmldoc.createattribute("value");
xa2.value="first";

elem.setattributenode(xa);
elem.setattributenode(xa2);


xmldoc.save(filename);

}

效果:
<appsettings>
<add key="密码" value="admin" />
<add key="ltp" value="first" />
</appsettings>

//添加空元素:
xmlnode node=doc.createelement(groupname);
node.innertext="";
doc.lastchild.appendchild(node);

doc.save(xmlfile);

删除一个节点元素
string itemname=this.listbox1.selecteditem.tostring();

this.listbox1.items.remove(this.listbox1.selecteditem);

//begin del xmlfile
xmldocument doc=new xmldocument();
doc.load(xmlfile);

xmlnodelist topm=doc.documentelement.childnodes;
foreach(xmlelement element in topm)
{
if(element.name==this.combobox1.text)
{

//得到该节点的子节点
xmlnodelist nodelist=element.childnodes;

foreach(xmlelement el in nodelist)//读元素值
{
if(el.attributes["key"].value==itemname)
{
element.removechild(el);
}

}//循环元素

}//得到组

}//循环组

doc.save(xmlfile); //一定要保存一下,否则不起作用

//筛选数据
private void reader_xml(string pathflie)
{
xmldocument xmldoc=new xmldocument();
xmldoc.load(pathflie);
xmlnodelist record1=xmldoc.documentelement.selectnodes(code[@id='1'])
int f=0;
foreach(xmlnode xnode in record1)
{

}
}/**//*读取xml数据 两种xml方式*/
<aaa>
<bb>something</bb>
<cc>something</cc>
</aaa>

<aaa>
<add key="123" value="321"/>
</aaa>

/**//*第一种方法*/
ds.readxml("your xmlfile name");
container.dataitem("bb");
container.dataitem("cc");
ds.readxmlschema("your xmlfile name");

/**//*第二种方法*/
<aaa>
<add key="123" value="321"/>
</aaa>
如果我要找到123然后取到321应该怎么写呢?

using system.xml;
xmldatadocument xmldoc = new system.xml.xmldatadocument();
xmldoc.load(@"c:\config.xml");
xmlelement elem = xmldoc.getelementbyid("add");
string str = elem.attributes["value"].value


/**//*第三种方法: selectsinglenode 读取两种格式的xml *---/
--------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appsettings>
<connectionstring>data source=yf; user id=ctm_dbo;password=123</connectionstring>
</appsettings>
</configuration>
--------------------------------------------------------------------------
xmldocument doc = new xmldocument();
doc.load(strxmlname);

xmlnode node=doc.selectsinglenode("/configuration/appsettings/connectionstring");
if(node!=null)
{
string k1=node.value; //null
string k2=node.innertext;//data source=yf; user id=ctm_dbo;password=123
string k3=node.innerxml;//data source=yf; user id=ctm_dbo;password=123
node=null;
}

********************************************************************
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appsettings>
<add key="connectionstring" value="data source=yf; user id=ctm_dbo;password=123" />
</appsettings>
</configuration>
**--------------------------------------------------------------------**
xmlnode node=doc.selectsinglenode("/configuration/appsettings/add");
if(node!=null)
{
string k=node.attributes["key"].value;
string v=node.attributes["value"].value;
node=null;
}
*--------------------------------------------------------------------*
xmlnode node=doc.selectsinglenode("/configuration/appsettings/add");
if(node!=null)
{
xmlnodereader nr=new xmlnodereader(node);
nr.movetocontent();
//检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。
nr.movetoattribute("value");
string s=nr.value;
node=null;
}

 

国内最大的酷站演示中心!