这个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"这个节点
--------------------编程问答-------------------- 顶一下... --------------------编程问答--------------------
--------------------编程问答-------------------- 这种格式是最简单的xml,你的.net 帮助里都有详细的例子 --------------------编程问答-------------------- 钻石,又见钻石! --------------------编程问答-------------------- 11楼的程序应该能满足你的要求,你应该对xml文档的标记了解清楚后,你就应该没问题了 --------------------编程问答-------------------- 12楼的大牛。 --------------------编程问答-------------------- 11楼谢了。。~!提供了很好的思路。。。还有就是添加该怎么添加? --------------------编程问答-------------------- AppendChid等方法 --------------------编程问答-------------------- string file = "e:\\1.xml";
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);
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#