阅读XML的问题

时间:2011-09-27 09:23:56

标签: c# xml xmlreader

Hello Guys你可以帮我解决我在阅读xml时遇到的问题。 我只是xml的新手。这是示例xml。

<Org>
    <Org ID="1">
        <OrgNum>1</OrgNum>
        <OrgName>sample1</OrgName>
    </Org>
    <Org ID="2">
        <OrgNum>2</OrgNum>
        <OrgName>sample2</OrgName>
    </Org>
</Org>

我想只使用 OrgName 获取 Org ID = 2 。 这是我的示例代码,但它读取了所有文本。 帮帮我PLZ..Tnx

string xml = Application.StartupPath + "\\OrgName.xml";
XmlDocument xmlDoc = new XmlDocument();
if (System.IO.File.Exists(xml))
{
    XmlTextReader textReader = new XmlTextReader(xml);
    textReader.Read();
    while (textReader.Read())
    {
        XmlNodeType nType = textReader.NodeType;
        if (nType == XmlNodeType.Text)
        {
            MessageBox.Show(textReader.Value);
        }
    }
}

3 个答案:

答案 0 :(得分:0)

如果您开始使用xdocumentxmldocumentxpath

等工具,也许您的生活会变得轻松多了

答案 1 :(得分:0)

如果你想使用经典的.net Xml对象模型,你可以试试这个:

    string xml = Application.StartupPath + "\\OrgName.xml";
    XmlDocument xmlDoc = new XmlDocument();
    if (System.IO.File.Exists(xml))
    {
       xmlDoc.Load(xml);
       XmlElement root = xmlDoc.DocumentElement;
       string orgName = root.SelectSingleNode(@"descendant::Org[@ID='1']/OrgName").InnerText;
       MessageBox.Show(orgName);
    }

答案 2 :(得分:0)

使用linq执行此操作的简单方法:

 var doc = XDocument.Load(Application.StartupPath + "\\OrgName.xml");
 var result = doc.Root.Elements("Org").Where(x=>x.Attribute("id").ToString()=="2");