DOTNET3.5如何使用Linq搜索查询XML文件数据

如何使用Linq来查询XML的数据, 使用Linq查询是非常方便的, 注意示例代码的搜索是从XML元素的Value属性寻找匹配值。Value属性将从XML元素中返回的内容做为字符串。如果不这样处理的话,XML Axis属性将会对应元素名称的元素集合。但是当搜索XML属性时,你并不需要指定Value属性。这种情况下,XML Axis属性默认返回第一个匹配属性的Value:

public static string xmlQuaryByNumber(int pNum, string xmlName)
    {
        string xmlpath = HttpRuntime.AppDomainAppPath + "XML/" + xmlName;
        XElement xelem = XElement.Load(xmlpath);
        var queryXML = from xmlLog in xelem.Descendants("ROW")
                       where xmlLog.Element("Number").Value == pNum.ToString()
                       select (xmlLog.Element("Name").Value.ToString());
        Array array = queryXML.ToArray();
        if (array.Length != 0)
            return array.GetValue(0).ToString();
        else
            return string.Empty;
    }

至于XML的数据如下:

<!-- 首页新闻子分类 -->
<!-- 说明: 0~9 预留, 10及其以上为省市 -->

<?xml version="1.0" encoding="utf-8" ?>
<NTN0002>
    <SubCategory>
        <ROW>
            <Number>0</Number>
            <Name>风声(全国)</Name>
        </ROW>
        <ROW>
            <Number>1</Number>
            <Name>诸侯(地方)</Name>
        </ROW>
        <ROW>
            <Number>2</Number>
            <Name>告示(行政金融财税)</Name>
        </ROW>
        <ROW>
            <Number>10</Number>
            <Name>苏州</Name>
        </ROW>
    </SubCategory>
   
</NTN0002>

调用方式:

string pName=txtpName.Text.Trim();
txtpNum.Text = XMLHelper.xmlQuaryByName(pName, "NTN001.xml");

 

引用通告地址: 点击获取引用地址
标签: .NET
评论: 0 | 引用: 0 | 阅读: 734 | 打印 | 打包 | 转发
发表评论
昵 称: 密 码:
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容:
  • 粗体
  • 斜体
  • 下划线
  • 插入图像
  • 超链接
  • 电子邮件
  • 插入引用