查询XML文档
标签:数据访问 ADO.NET
查询XML文档 LINQ to XML类提供属性和方法,返回可查询的类的对象集合。
将XML对象作为LINQ查询对象:
.......
XDocument customers = XDocument.Load(xmlFileName);
var queryResult = from c in customers.Elements() select c.Name;
使用查询成员
1)Element():返回文档 或 片段中的第一个元素。文档的话就返回根元素; 2)Descendants():返回文档 或 片段中的所有子元素(所有级别); 例:queryResults = from c in customers.Descendants() select c.Name; foreach (var item in queryResults.Distinct()) //筛选出不同的元素
Descendants(string)重载: queryResults = from c in customers.Desendants("customer") select c; //查询指定名称的子元素,返回所有customer元素。
3)Ancestors():返回比源元素级别高的一组元素;
4)Attribute():返回当前选中元素的所有属性;
例:queryResults = from c in customers.Descendants("customer").Attributes() select c; //返回customers中所有customer元素的属性值
相关文档:
Definition comparer class,
class ItemComparer : IEqualityComparer<XElement>
{
public bool Equals(XElement x, XElement y)
{
return x.Attribute("Name").Value == x.Attribute("Name").Value;
}
public int GetHashCode(XElement obj)
......
/// <summary>
/// DataTable-------------------->XML --String
/// </summary>
public static String ToXmlString(DataTable dt)
{
StringWriter tr = new StringWriter();
try
{
dt.WriteXml(tr); ......
<?
XML DOM读取节点信息遇到问题总结:
1:NodeList: 使用节点的childNodes属性或者document对象的getElementsByTagName()方法,就会返回一个包含节点列表的NodeList
2: 在 XML DOM 中,节点的关系被定义为节点的属性:
· parentNode
· childNodes
· ......
最常见的XML数据类型有:Element, Attribute,Comment, Text.
Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
Attribute, 指在<Employee id=”12345”>中的粗体部分。
&nb ......