2010-08-18 5 views
0

мне нужно преобразовать XML в массив с помощью ASP.NET.как преобразовать XML в массив в asp.net

Я попытался найти в Интернете, но не смогли найти правильное решение.

Может кто-то пожалуйста, помогите мне с этим

Спасибо,
Alloi

+1

в массив чего именно? На данный момент ваш вопрос очень расплывчатый. –

+0

'байт [] массив = Encoding.UTF8.GetBytes (xmldocument.OuterXml);' - Я предполагаю, что это не то, что вы хотите, но, как говорит Джон, это немного трудно понять, основываясь на ваш вопрос. –

+0

У меня есть построенный XML. Теперь я хотел бы взять эти элементы и преобразовать их в массив элементов, чтобы я мог использовать их в следующих шагах. Что-то вроде этого, которое я нашел в php http://www.bin-co.com/php/scripts/xml2array/ – Alloi

ответ

1

Я нашел LinqToXML полезным в этих обстоятельствах. У меня есть очень простой XML-документ:

<?xml version="1.0" encoding="utf-8" ?> 
<People> 
    <Person> 
    <id>1</id> 
    <name>Dave</name> 
    </Person> 
    <Person> 
    <id>2</id> 
    <name>Pete</name> 
    </Person> 
    <Person> 
    <id>3</id> 
    <name>Marie</name> 
    </Person> 
</People> 

и следующий код, который превратит его в массив объектов:

FileStream file = new FileStream("data.xml", FileMode.Open); 

XDocument xmldoc = XDocument.Load(file); 

var people = (from p in xmldoc.Descendants("Person") 
       select new 
       { 
       ID = p.Element("id").Value, 
       Name = p.Element("name").Value 
       }).ToArray(); 

foreach (var person in people) 
{ 
    Console.WriteLine(person.Name); 
} 
+0

david - хороший. хорошо работает со структурой в сценарии. как я сказал в своей маленькой мелодии ниже, если вы знаете структуру, вы настроены. это неизвестная структура, которая вызывает проблему, которую я чувствую. но хороший ответ ... –

+0

Спасибо большое! :) – Alloi

+0

Спасибо @jim, и никаких проблем @Alloi. – DavidGouge

0

Alloi - я думаю, что из-за сложности, присущей XML структур, это будет очень сильно зависеть от самого XML. я говорю, что общее решение может быть очень сложно сделать доказательством бомбы, тогда как решение «известной» структуры может быть довольно прямым. сериализатор может позволить вам сохранить его в ToList() или аналогичном, но помимо этого, это случай лошадей для источников, которые я думаю. :)

джим

[редактировать] - ссылка, которая может быть полезным: http://www.c-sharpcorner.com/UploadFile/chauhan_sonu57/SerializingObjects07202006065806AM/SerializingObjects.aspx

также - миленькая ссылку, показывающий, как преобразовать xml-> JSON в C# : http://www.phdcc.com/xml2json.htm

0

Если у вас есть XSD, к которому XML ссылается, что, вероятно, может стать отправной точкой в ​​реализации массив (или список).

0

Путь ... может помочь вам

  1. чтения XML в наборе данных.
  2. Итерируйте набор данных на основе строк таблицы и добавьте каждую строку в список.
  3. Показать список как массив или список. не
0

Я не знаю, если есть класс .net, который выполняет это действие, прямо или нет, но в случае, если нет у вас есть 2 варианта:

1. Загрузите XML в набор данных, затем зациклируйте в наборе данных и установите элементы массива.

2. Получите число узлов XML, затем пройдите через XML и прочитайте каждый элемент узла, затем поместите его в массив.

Надеется, что это полезно

Смежные вопросы