读
//打开某文件(假设nfig在根目录中)
stringfilename=ServerMapPath(/)+@WebApplication\nfig;
XmlDocumentxmldoc=newXmlDocument();
xmldocLoad(filename);
//得到顶层节点列表
XmlNodeListtopM=xmldocDocumentElementChildNodes;
foreach(XmlElementelementintopM)
{
if(elementNameToLower()==appsettings)
{
//得到该节点的子节点
XmlNodeListnodelist=elementChildNodes;
if(nodelistCount>)
{
//DropDownListItemsClear();
foreach(XmlElementelinnodelist)//读元素值
{
//DropDownListItemsAdd(elAttributes[key]InnerXml);
//thisTextBoxText=elAttributes[key]InnerText;
thisTextBoxText=elAttributes[key]Value;
thisLabelText=elAttributes[value]Value;
//同样在这里可以修改元素值在后面save
//elAttributes[value]Value=thisTextBoxText;
}
}
}
}
xmldocSave(filename);
在某节点下增加一个元素并设置值
if(elementNameToLower()==appsettings)
{
XmlElementelem=xmldocCreateElement(add);
elementAppendChild(elem);
elemInnerText=ltp;
xmldocSave(filename);
}
效果
<appSettings>
<addkey=密码value=admin/>
<add>ltp</add>
</appSettings>
在某节点下增加一个元素并增加两个属性
if(elementNameToLower()==appsettings)
{
XmlElementelem=xmldocCreateElement(add);
elementAppendChild(elem);
XmlAttributexa=xmldocCreateAttribute(key);
xaValue=ltp;
XmlAttributexa=xmldocCreateAttribute(value);
xaValue=first;
elemSetAttributeNode(xa);
elemSetAttributeNode(xa);
xmldocSave(filename);
}
效果
<appSettings>
<addkey=密码value=admin/>
<addkey=ltpvalue=first/>
</appSettings>
//添加空元素
XmlNodenode=docCreateElement(groupname);
nodeInnerText=;
docLastChildAppendChild(node);
docSave(xmlfile);
删除一个节点元素
stringitemname=thislistBoxSelectedItemToString();
thislistBoxItemsRemove(thislistBoxSelectedItem);
//begindelxmlfile
XmlDocumentdoc=newXmlDocument();
docLoad(xmlfile);
XmlNodeListtopM=docDocumentElementChildNodes;
foreach(XmlElementelementintopM)
{
if(elementName==boBoxText)
{
//得到该节点的子节点
XmlNodeListnodelist=elementChildNodes;
foreach(XmlElementelinnodelist)//读元素值
{
if(elAttributes[key]Value==itemname)
{
elementRemoveChild(el);
}
}//循环元素
}//得到组
}//循环组
docSave(xmlfile);//一定要保存一下否则不起作用
//筛选数据
privatevoidReader_Xml(stringpathFlie)
{
XmlDocumentXmldoc=newXmlDocument();
XmldocLoad(pathFlie);
XmlNodeListRecord=XmldocDocumentElementSelectNodes(Code[@id=])
intf=;
foreach(XmlNodexnodeinRecord)
{
}
}
读取xml节点的数据总结
/*读取xml数据两种xml方式*/
<aaa>
<bb>something</bb>
<cc>something</cc>
</aaa>
<aaa>
<addkey=value=/>
</aaa>
/*第一种方法*/
DSReadXml(yourxmlfilename);
ContainerDataItem(bb);
ContainerDataItem(cc);
DSReadXmlSchema(yourxmlfilename);
/*第二种方法*/
<aaa>
<addkey=value=/>
</aaa>
如果我要找到然后取到应该怎么写呢?
usingSystemXML;
XmlDataDocumentxmlDoc=newSystemXmlXmlDataDocument();
xmlDocLoad(@c:\Configxml);
XmlElementelem=xmlDocGetElementById(add);
stringstr=elemAttributes[value]Value
/*第三种方法:SelectSingleNode读取两种格式的xml*/
<?xmlversion=encoding=utf?>
<configuration>
<appSettings>
<ConnectionString>DataSource=yf;userid=ctm_dbo;password=</ConnectionString>
</appSettings>
</configuration>
XmlDocumentdoc=newXmlDocument();
doc
Load(strXmlName);
XmlNodenode=docSelectSingleNode(/configuration/appSettings/ConnectionString);
if(node!=null)
{
stringk=nodeValue;//null
stringk=nodeInnerText;//DataSource=yf;userid=ctm_dbo;password=
stringk=nodeInnerXml;//DataSource=yf;userid=ctm_dbo;password=
node=null;
}
********************************************************************
<?xmlversion=encoding=utf?>
<configuration>
<appSettings>
<addkey=ConnectionStringvalue=DataSource=yf;userid=ctm_dbo;password=/>
</appSettings>
</configuration>
****
XmlNodenode=docSelectSingleNode(/configuration/appSettings/add);
if(node!=null)
{
stringk=nodeAttributes[key]Value;
stringv=nodeAttributes[value]Value;
node=null;
}
**
XmlNodenode=docSelectSingleNode(/configuration/appSettings/add);
if(node!=null)
{
XmlNodeReadernr=newXmlNodeReader(node);
nrMoveToContent();
//检查当前节点是否是内容节点如果此节点不是内容节点则读取器向前跳至下一个内容节点或文件结尾
nrMoveToAttribute(value);
strings=nrValue;
node=null;
}