2017-01-05 9 views
0

この例のように、C#でXMLファイルのすべてのタグからすべての属性を繰り返し処理したいとします。未知のXML属性をすべて反復する

<TAG1 Attribute1="1234" Attribute2="1234" Attribute3="1234"> 
     <TAG2 xpq="123" abc="000" lkj="123"/> 
</TAG1> 

XMLが非常に長く、タグと属性の名前が変更される可能性があります。 名前を知らずに反復する方法を見つけなければなりません。

は、誰も私のためのアイデアを持っています...私は

XmlTextReader reader = new XmlTextReader("C:\\PathToXml\File.xml"); 
var optionTitle = reader.Name;       
var AttributeName = reader.LocalName; 
var AttributeValue = reader.GetAttribute(AttributeName); 
var itemValue = new ListViewItem(new[] { optionTitle, AttributeName, AttributeValue }); 
listView1.Items.Add(itemValue); 

でそれをテストしてきた。しかし、私は唯一のタグ名と他には何を得ますか?

+0

ようXElement.Attributesを使用して、すべての属性を取得 - http://stackoverflow.com/questions/6253565/loop-through-の重複をall-the-a-node-using-xdocumentを使用します。 –

答えて

1

私はあなたがXML文書にはるかに簡単なアクセスを提供XDocumentクラスを使用する必要がありますLinq2Xml

var xDoc = XDocument.Load(filename); 
foreach(var attr in xDoc.Descendants("TAG1").First().Attributes()) 
{ 
    Console.WriteLine(attr.Name + " " + attr.Value); 
} 
0

を使用して好みます。

var doc = XDocument.Load("C:\\PathToXml\File.xml"); 
foreach(var el in doc.Descendants()) 
    foreach(var attr in el.Attributes()) 
    { 
     var itemValue = new ListViewItem(new[] { el.TagName, attr.Name, attr.Value }); 
     listView1.Items.Add(itemValue); 
    } 
0

xmlファイルを読み込むには、XDocumentを使用する必要があります。その後、重複がXmlReaderのソリューションまたはあなたはLINQからXMLへと罰金している場合を示し、この

var document = XDocument.Load("C:\\PathToXml\File.xml"); 
foreach (var attribute in document.Root.Attributes) 
{ 
    //process the attribute 
    //attribute.Name 
    //attribute.Value 
} 
関連する問題