[英]C# reading XML , how to get the value
I am new to XML. 我是XML的新手。 Need some help. 需要一些帮助。 I can get pro NAME fine but How do I get the value of scode? 我可以获得专业名称,但我如何获得scode的价值? JDK...blah JDK ...等等
<pro NAME="JK1233k">
<scode ID="A">JDK-ORPLL-PDILL</scode>
</pro>
XmlReader reader = XmlReader.Create("file.xml");
while (reader.Read())
{
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "pro"))
{
Console.WriteLine(reader["NAME"]);
}
else if((reader.NodeType == XmlNodeType.Element) && (reader.Name == "scode"))
{
Console.WriteLine(reader["ID"]);
//what do I put here to get the value????
}
}
reader.Close();
What you're looking for is: 你在寻找的是:
Console.WriteLine(reader.ReadInnerXml());
at the start of your c# file put the following: 在c#文件的开头放置以下内容:
using System.Linq; using System.Xml.Linq; // loads the linq to xml part
Most XML files are much bigger than just one element. 大多数XML文件都比一个元素大得多。 So for that, your code would be something like this: 那么,为此,您的代码将是这样的:
// Load XML file as an IEnumerable. This allows you to query it. var xmlDoc = XDocument.Load(file) .Elements("pro") .Select(pro => new { Name = pro.Attribute("NAME").Value, Scode = pro.Elements("scode").Select(scode => new { ID = scode.Attribute("ID").Value, Val = scode.Value }) }); // loop through each <pro> element foreach (var pro in xmlDoc) { // Get Pro Name Console.WriteLine(pro.Name); // loop through each <scode> element inside <pro> foreach(var scode in pro.Scode) { // Get Scode ID: Console.WriteLine(scode.ID); // Get Scode Value: Console.WriteLine(scode.Val); } }
If your XML is only a SINGLE element, you can do this: 如果您的XML只是一个SINGLE元素,您可以这样做:
// Load XML file: var pro = XElement.Load("file.xml"); // Get Pro Name pro.Attribute("NAME").Value; // Get Scode ID: pro.Element("scode").Attribute("ID").Value; // Get Scode Value: pro.Element("scode").Value;
Consider the following code snippet... 请考虑以下代码段...
XDocument doc = XDocument.Load("file.xml");
foreach (XElement element in doc.Descendants("pro"))
{
Console.WriteLine(element.Attribute("NAME").Value);
}
foreach (XElement element in doc.Descendants("scode"))
{
Console.WriteLine(element.Value);
}
Good Luck! 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.