我是C#编程的新手。我试图解析XML文档并在控制台上打印值。我的程序编译没有错误,但我没有得到理想的结果。
这是守则。
XmlDocument doc = new XmlDocument();
doc.Load("C:\\Users\\hsyed\\Documents\\XMLParser\\Example.xml");
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("ab", "Identifier");
XmlNodeList node = doc.SelectNodes("//root/ab:Identity/Refrences/Reference/Value/text()", nsmgr);
String s= node.ToString();
System.Console.WriteLine(s);
Console.Read();
XML文件
<Attributes>
<Attribute Name="StudentFirstName" Tag="B"/>
</Attributes>
</Metadata>
<Identities>
<Identity Identifier="00002C8DGPDDTZ5D" CDate="2013-02-07">
<References>
<Reference>
<Value>A^S2513.268898|B^JOHN</Value>
<Traces/>
</Reference>
<Reference>
<Value>A^S2613.269022|B^JOHN</Value>
<Traces/>
</Reference>
</References>
</Identity>
<Identity Identifier="000388MRUO7TRSBH" CDate="2013-02-07">
<References>
<Reference>
<Value>A^S2513.285402|B^Doe</Value>
<Traces/>
</Reference>
<Reference>
<Value>A^S2613.285476|B^Doe</Value>
<Traces/>
</Reference>
</References>
</Identity>
我想在“值”字段中获取信息。
感谢。
答案 0 :(得分:2)
使用您的示例:
XmlDocument doc = new XmlDocument();
doc.Load("C:\\Users\\hsyed\\Documents\\XMLParser\\Example.xml");
XmlNodeList nodes = doc.SelectNodes("//root/Identities/Identity/Refrences/Reference/Value/text()");
foreach (XmlNode xn in nodes)
{
Console.WriteLine(xn.Value.ToString());
}
答案 1 :(得分:2)
这是一个搭载LINQ的替代方案:
XmlDocument doc = new XmlDocument();
doc.Load("whatever path to xml");
var nodes = doc
.SelectNodes("xpath query goes here")
.Cast<XmlNode>()
// optionally, convert to a list
.ToList();
// Outputs something like:
// System.Collection.Generic.List`1[[System.Xml.XmlNode, ...]]
Console.WriteLine(nodes.GetType().FullName);