[英]How can I read the XML file Node attributes and Child node attributes values?
[英]How to dynamically retrive the all the possible attributes (variable attributes) values of one of the xml node?
我正在使用以下XML结构
<SERVERS>
<SERVER NAME="A1" ID="1"></SERVER>
<SERVER NAME="A2"></SERVER>
<SERVER NAME="A3" ID="3" Parent="XYZ"></SERVER>
<SERVER NAME="A4" ID="4"></SERVER>
<SERVER NAME="A5" Parent="abc" value="10"></SERVER>
<SERVER NAME="A6"></SERVER>
</SERVERS>
我正在通过使用C#在asp.net中使用LINQ to XML访问此xml文件。 我可以通过显式指定属性名称来访问XML节点的所有属性。 我想在此xml文件上写查询,该查询动态读取xml节点的所有属性值(在我们的示例中,该节点是SERVER)意味着我想编写查询,该查询可以读取从中读取的属性Name和ID的值第一个节点,仅第二行的名称,第三行的名称,ID和父级,第四行的名称和ID,第五行的名称,父级和值,第六行的名称,而无需每次都修改现有代码。 一旦在上述xml文件中添加了一个属性(例如,如果在第六行中添加了属性ID),则无需修改LINQ to XML查询。 我的查询应动态获取属性的总数并显示其值。 他们有什么办法吗? 您能提供解决上述问题的任何代码或链接吗?
如果仅使用XElement.Attributes()
,则将获取特定元素的所有属性-您可以适当地遍历它们。
样例代码:
using System;
using System.Xml.Linq;
class Test
{
static void Main()
{
string xml = "<element attr1='Hello' attr2='there' />";
XElement element = XElement.Parse(xml);
foreach (XAttribute attr in element.Attributes())
{
Console.WriteLine("{0}={1}", attr.Name, attr.Value);
}
}
}
输出:
attr1=Hello
attr2=there
因此,您只需要遍历所有感兴趣的元素,并遍历每个元素中的属性,即可显示所需的内容。
下面的代码将打印出元素的所有属性。
XDocument doc = XDocument.Load("file.xml");
foreach(var element in doc.Element("SERVER").Elements()) {
System.Diagnostics.Debug.WriteLine("Node " + element.Name.LocalName + ":");
foreach(var attribute in element.Attributes()) {
System.Diagnostics.Debug.WriteLine(" " + attribute.Name.LocalName + ": " + attribute.Value);
}
}
对于此XML:
<SERVER>
<ServerInstance ID="101" Name="Server1">
<ServerInstance ID="102" Name="Server2">
<SERVER>
它将打印出如下内容:
Node ServerInstance:
ID: 101
Name: Server1
Node ServerInstance:
ID: 102
Name: Server2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.