我有这样的Xml文件:
<store>
<book id="A1" name="WEB" price="10"/>
<book id="b1" name="C#" price="15"/>
<book id="c1" name="DOT" price="12"/>
<book id="d1" name="JAVA" price="20"/>
<book id="e1" name="C" price="13"/>
</store>
我有书想知道如果新书需要创建新元素和默认ID,我想获得书名和价格。请帮帮我
我正在使用.Net 2.0 c sharp
答案 0 :(得分:1)
如何简单地使用Linq2XML? 这使您可以轻松查询数据 - 查找,排序,插入,删除....
答案 1 :(得分:1)
我的问题实际上有两个部分。
要检索对象:
public class Book
{
public Book(string id, string name, decimal price)
{
Id = id;
Name = name;
Price = price;
}
public string Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
将具有已知Id的图书加载到对象中:
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(_path);
XmlNode xmlNode = xmlDocument.SelectSingleNode(@"//book[@id='" + id + "']");
return xmlNode == null ? new Book(id, string.Empty, 0) : new Book(id, xmlNode.Attributes["name"].Value, decimal.Parse(xmlNode.Attributes["price"].Value));
要创建新的图书元素:
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(_path);
XmlElement newBook = xmlDocument.CreateElement("book");
newBook.SetAttribute("id", book.Id);
newBook.SetAttribute("name", book.Name);
newBook.SetAttribute("price", book.Price.ToString());
xmlDocument.DocumentElement.AppendChild(newBook);
xmlDocument.Save(_path);
其中_path是XML文档的路径。
我希望这会有所帮助。还要记住,XmlDocument是XML文档的内存或缓存树表示。它有点资源密集,如果你有一个大的XML文档并且没有足够的内存可供使用,请使用XmlReader和XmlWriter以获得更好的性能。