У меня есть этот XML-файл:
<?xml version = "1.0" encoding = "utf-8"?>
<ArrayOfPasswordSettings xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
<PasswordSettings>
<CustomerRef>c</CustomerRef>
<Node>n</Node>
<Name>na</Name>
<Login>l</Login>
<Password>ITra+Map1RxklmcSY5yOo9wU9tUV0S4C4qwUv4p2ZFS3L8ByJYXmA9YjswlSTjQZXUJAkV3Z6mhY8OF5/dFOLNAZZRk2i2IOzrVOWSDfdpB8/Vm7PPF0ucSHILHNWpT8</Password>
<FileType>ft</FileType>
</PasswordSettings>
<PasswordSettings>
<CustomerRef>c</CustomerRef>
<Node>n</Node>
<Name>na</Name>
<Login>l</Login>
<Password>ITra+Map1RxklmcSY5yOo9wU9tUV0S4C4qwUv4p2ZFS3L8ByJYXmA9YjswlSTjQZXUJAkV3Z6mhY8OF5/dFOLNAZZRk2i2IOzrVOWSDfdpB8/Vm7PPF0ucSHILHNWpT8</Password>
<FileType>ft</FileType>
</PasswordSettings>
</ArrayOfPasswordSettings>
Как вы видите, есть несколько <PasswordSettings>
, которые представляют собой список из нескольких элементов, таких как имя, логин и пароль. Могу ли я повторить <PasswordSettings>
в некотором цикле foreach <PasswordSettings>
и получить элементы?
Возможный дубликат Как десериализовать XML-документ
Позже вам стоит попробовать Xml Linq. Он существует на C#, я пробовал его, и он действительно хорош.
Пожалуйста, попробуйте этот пример:
XML:
<?xml version = "1.0" encoding = "utf-8" standalone = "yes"?>
<root>
<Brand name = "Brand1">
<product name = "Product1" />
<product name = "Product2" />
</Brand>
<Brand name = "Brand2">
<product name = "Product3" />
<product name = "Product4" />
</Brand>
</root>
С#:
StringBuilder result = new StringBuilder();
foreach (XElement level1Element in XElement.Load(@"D:\product.xml").Elements("Brand"))
{
result.AppendLine(level1Element.Attribute("name").Value);
foreach (XElement level2Element in level1Element.Elements("product"))
{
result.AppendLine(" " + level2Element.Attribute("name").Value);
}
}
Попробуйте xml linq:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication108
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
var results = doc.Descendants("PasswordSettings").Select(x => new
{
c = (string)x.Element("CustomerRef"),
node = (string)x.Element("Node"),
name = (string)x.Element("Name"),
login = (string)x.Element("Login"),
password = (string)x.Element("Password"),
fileType = (string)x.Element("FileType")
}).ToList();
}
}
}
Вам нужно будет прочитать файл как XML, тогда есть много возможностей. Пожалуйста, проверьте Чтение данных из XML