当前位置:编程学习 > C#/ASP.NET >>

这个XML文件该怎么读取、修改、添加、删除

<gallery title="Navdeeps Gallery" thumbDir="Picture/" imageDir="Picture/" random="true">
<category name="photo">
<image>
<date>2007年5月</date>
<title>img_2168.jpg</title>
<desc>2007年5月5月</desc>
<thumb>img_2168.jpg</thumb>
<img>img_2168.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>img_2448.jpg</title>
<desc>img_2448.jpg</desc>
<thumb>img_2448.jpg</thumb>
<img>img_2448.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>img_2454.jpg</title>
<desc>img_2454.jpg</desc>
<thumb>img_2454.jpg</thumb>
<img>img_2454.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>img_2461.jpg</title>
<desc>img_2461.jpg</desc>
<thumb>img_2461.jpg</thumb>
<img>img_2461.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>img_2472.jpg</title>
<desc>img_2472.jpg</desc>
<thumb>img_2472.jpg</thumb>
<img>img_2472.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>img_2477.jpg</title>
<desc>img_2477.jpg</desc>
<thumb>img_2477.jpg</thumb>
<img>img_2477.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>img_2522.jpg</title>
<desc>img_2522.jpg</desc>
<thumb>img_2522.jpg</thumb>
<img>img_2522.jpg</img>
</image>
<image>
<date>2007年5月</date>
<title>pisa_still_3.jpg</title>
<desc>pisa_still_3.jpg</desc>
<thumb>pisa_still_3.jpg</thumb>
<img>pisa_still_3.jpg</img>
</image>
</category>

<category name="windowsvista">
<image>
<date>2002年5月</date>
<title>vista_wall易做图s__30_.jpg</title>
<desc>vista_wall易做图s__30_.jpg</desc>
<thumb>vista_wall易做图s__30_.jpg</thumb>
<img>vista_wall易做图s__30_.jpg</img>
</image>
<image>
<date>2002年5月</date>
<title>vista_wall易做图s__64_.jpg</title>
<desc>vista_wall易做图s__64_.jpg</desc>
<thumb>vista_wall易做图s__64_.jpg</thumb>
<img>vista_wall易做图s__64_.jpg</img>
</image>
<image>
<date>2002年5月</date>
<title>vista_wall易做图s__12_.jpg</title>
<desc>vista_wall易做图s__12_.jpg</desc>
<thumb>vista_wall易做图s__12_.jpg</thumb>
<img>vista_wall易做图s__12_.jpg</img>
</image>
<image>
<date>2002年5月</date>
<title>vista_wall易做图s__57_.jpg</title>
<desc>vista_wall易做图s__57_.jpg</desc>
<thumb>vista_wall易做图s__57_.jpg</thumb>
<img>vista_wall易做图s__57_.jpg</img>
</image>
<image>
<date>2002年5月</date>
<title>vista_wall易做图s__37_.jpg</title>
<desc>vista_wall易做图s__37_.jpg</desc>
<thumb>vista_wall易做图s__37_.jpg</thumb>
<img>vista_wall易做图s__37_.jpg</img>
</image>
<image>
<date>2002年5月</date>
<title>vista_wall易做图s__51_.jpg</title>
<desc>vista_wall易做图s__51_.jpg</desc>
<thumb>vista_wall易做图s__51_.jpg</thumb>
<img>vista_wall易做图s__51_.jpg</img>
</image>
</category>

<category name="Web 设计">
<image>
<date>2007年3月</date>
<title>snap1.jpg</title>
<desc>snap1.jpg</desc>
<thumb>snap1.jpg</thumb>
<img>snap1.jpg</img>
</image>
<image>
<date>2007年3月</date>
<title>snap2.jpg</title>
<desc>snap2.jpg</desc>
<thumb>snap2.jpg</thumb>
<img>snap2.jpg</img>
</image>
<image>
<date>2007年3月</date>
<title>snap3.jpg</title>
<desc>snap3.jpg</desc>
<thumb>snap3.jpg</thumb>
<img>snap3.jpg</img>
</image>
<image>
<date>2007年3月</date>
<title>6057.jpg</title>
<desc>6057.jpg</desc>
<thumb>6057.jpg</thumb>
<img>6057.jpg</img>
</image>
<image>
<date>2007年3月</date>
<title>blogkins.jpg</title>
<desc>blogkins.jpg</desc>
<thumb>blogkins.jpg</thumb>
<img>blogkins.jpg</img>
</image>
</category>

<category name="Men">
<image>
<date>2003年6月</date>
<title>badjas.jpg</title>
<desc>badjas.jpg</desc>
<thumb>badjas.jpg</thumb>
<img>badjas.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>badjestrand.jpg</title>
<desc>badjestrand.jpg</desc>
<thumb>badjestrand.jpg</thumb>
<img>badjestrand.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>chadblauwjasje.jpg</title>
<desc>chadblauwjasje.jpg</desc>
<thumb>chadblauwjasje.jpg</thumb>
<img>chadblauwjasje.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>chadboy.jpg</title>
<desc>chadboy.jpg</desc>
<thumb>chadboy.jpg</thumb>
<img>chadboy.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>golfbeachchad.jpg</title>
<desc>golfbeachchad.jpg</desc>
<thumb>golfbeachchad.jpg</thumb>
<img>golfbeachchad.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>palmboycover.jpg</title>
<desc>palmboycover.jpg</desc>
<thumb>palmboycover.jpg</thumb>
<img>palmboycover.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>jme1.jpg</title>
<desc>jme1.jpg</desc>
<thumb>jme1.jpg</thumb>
<img>jme1.jpg</img>
</image>
<image>
<date>2003年6月</date>
<title>snap43.jpg</title>
<desc>snap43.jpg</desc>
<thumb>snap43.jpg</thumb>
<img>snap43.jpg</img>
</image>
</category>


</Gallery> --------------------编程问答-------------------- 如果有好的答案。我会追加分数 --------------------编程问答-------------------- 你要改什么?想怎么改?
直接使用XPath就OK~~~~~ --------------------编程问答-------------------- <category   name="photo"> 

name的属性也要改。。。加了个类别功能。。搞蒙了。高手想想办法 --------------------编程问答-------------------- 楼主是想问XML怎么修改,读取,添加,删除吧...关你的XML文档什么事,你的文档看起来是一般的XML格式啊. --------------------编程问答-------------------- 属性就是attributes["属性名"].value这样改啊. --------------------编程问答-------------------- XPATH? 怎么用?学习中``` --------------------编程问答-------------------- 举个简单例子
比如你要修改category   name="photo"这个节点下的Image节点的信息

XmlDocument doc = new XmlDocument();
doc.Load(file);
XmlNodeList list = doc.SelectNodes("/Gallery/category[@name='photo']");

list就是image节点的集合
改好后
doc.Save(file);

--------------------编程问答-------------------- <category   name="photo"> 中name的属性要可以修改
这是个大类。每个大类底下的
<image> 
<date> 2003年6月 </date> 
<title> snap43.jpg </title> 
<desc> snap43.jpg </desc> 
<thumb> snap43.jpg </thumb> 
<img> snap43.jpg </img> 
</image>
底下内容也要修改
--------------------编程问答-------------------- Sorry :

XmlNodeList   list   =   doc.SelectNodes("/Gallery/category[@name='photo']"); 
list就是image节点的集合 
---->
XmlNode node = doc.SelectSingleNode("/Gallery/category[@name='photo']"); 
node是category       name="photo"这个节点


--------------------编程问答--------------------  顶一下... --------------------编程问答--------------------

string file = "e:\\1.xml";
XmlDocument doc = new XmlDocument();
doc.Load(file);
XmlNode node = doc.SelectSingleNode("/gallery/category[@name='photo']");
node.Attributes["name"].Value = "photo111";
XmlNodeList imgs = node.SelectNodes("image");
//修改你Image节点下的信息
doc.Save(file);

--------------------编程问答-------------------- 这种格式是最简单的xml,你的.net 帮助里都有详细的例子 --------------------编程问答-------------------- 钻石,又见钻石! --------------------编程问答-------------------- 11楼的程序应该能满足你的要求,你应该对xml文档的标记了解清楚后,你就应该没问题了 --------------------编程问答-------------------- 12楼的大牛。 --------------------编程问答-------------------- 11楼谢了。。~!提供了很好的思路。。。还有就是添加该怎么添加? --------------------编程问答-------------------- AppendChid等方法 --------------------编程问答-------------------- string file = "e:\\1.xml";
XmlDocument doc = new XmlDocument();
doc.Load(file);
XmlNode node = doc.SelectSingleNode("/gallery/category[@name='photo']");
node.Attributes["name"].Value = "photo111";
XmlNodeList imgs = node.SelectNodes("image");
//修改你Image节点下的信息
doc.Save(file);

这里
XmlNode node = doc.SelectSingleNode("/gallery/category[@name='photo']");
该怎么把Photo改成变量
--------------------编程问答-------------------- XmlNode   node   =   doc.SelectSingleNode("/gallery/category[@name='photo']"); 
该怎么把Photo改成变量 
----》
XmlNode   node   =   doc.SelectSingleNode(String.Format("/gallery/category[@name='{0}']",你的变量)); 

简单的拼接字符串~~~~~ --------------------编程问答-------------------- 谢谢。还有是往XML里面添加<category   name="photo"> 这个节点~~!!~(*^__^*) 嘻嘻……。是不是要等明天才能给别人加分啊? --------------------编程问答-------------------- 也跟着学习一下~ --------------------编程问答-------------------- XmlDocument doc = new XmlDocument(); 
doc.Load(file);
XmlNode node = doc.SelectSingleNode("gallery”) // 如果gallery是根节点的话
Xml.XmlElement newElement =doc.CreateElement("category");
newElement.SetAttribute("name", "photo");
doc.save(fileName);

// 如果还要在newElement下添加其他节点的话,可以继续:

Xml.XmlElement subElement = doc.CreateElement("elementName");
subElement.SetAttribute("attributeName1", "Value1");
subElement.SetAttribute("attributeName2", "Value2");

newElement.AppendChild(subElement);
// 其他的以此类推
//然后保存XML文件
doc.save(fileName);

--------------------编程问答-------------------- 将xml生成记录集,然后对记录集进行添加、修改、删除等操作,再返回... --------------------编程问答-------------------- 学习呀 ! --------------------编程问答--------------------  读取xml文档并返回一个节点#region 读取xml文档并返回一个节点
                public static string ReadXmlReturnNode(string XmlPath, string Node)
        {
            XmlDocument docXml = new XmlDocument();
            docXml.Load(@XmlPath);
            XmlNodeList xn = docXml.GetElementsByTagName(Node);
            return xn.Item(0).InnerText.ToString();
        }
        删除XML节点和此节点下的子节点  删除XML节点和此节点下的子节点
                public static void XmlNodeDelete(string xmlPath, string Node)
        {
            XmlDocument objXmlDoc = new XmlDocument();
            objXmlDoc.Load(xmlPath);
            string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
            objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
            objXmlDoc.Save(xmlPath);
        }

           向一个节点添加属性#region 向一个节点添加属性
               public static void AddAttribute(string xmlPath, string NodePath, string NodeAttribute1, string NodeAttributeText)
        {
            XmlDocument objXmlDoc = new XmlDocument();
            objXmlDoc.Load(xmlPath);
            XmlAttribute nodeAttribute = objXmlDoc.CreateAttribute(NodeAttribute1);
            XmlNode nodePath = objXmlDoc.SelectSingleNode(NodePath);
            nodePath.Attributes.Append(nodeAttribute);
            XmlElement xe = (XmlElement)nodePath;
            xe.SetAttribute(NodeAttribute1, NodeAttributeText);
            objXmlDoc.Save(xmlPath);
        }
        --------------------编程问答-------------------- 学习。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,