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);
}
}
}
答案 0 :(得分:0)
如果您开始使用xdocument,xmldocument和xpath
等工具,也许您的生活会变得轻松多了答案 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");