2010-08-18 46 views
0

我需要使用asp.net将XML转换为数组。如何在XML中将XML转换为数组

我试图在网上搜索,但找不到合适的解决方案。

可有人请帮我这

感谢,
Alloi

+1

成什么样的数组,到底是什么?你的问题目前非常模糊。 – 2010-08-18 10:59:49

+0

'byte [] array = Encoding.UTF8.GetBytes(xmldocument.OuterXml);' - 我猜这不是你想要的,但是Jon说根据你的问题有点难以确定。 – 2010-08-18 11:11:06

+0

我有一个XML构造。现在我想采取这些元素,并将它们转换为元素数组,以便我可以在更进一步的步骤中使用这些元素 类似这样的东西,我在php http://www.bin-co.com/php/scripts/xml2array/ – Alloi 2010-08-18 11:16:50

回答

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 - 很好的一个。适用于场景中的结构。就像我在下面的小小曲子中所说的,如果你知道结构,那么你就定了。这是未知的结构,导致我感觉到的问题。但很好的答案... – 2010-08-18 11:29:10

+0

非常感谢! :) – Alloi 2010-08-18 11:31:50

+0

谢谢@jim,并没有probs @Alloi。 – DavidGouge 2010-08-18 11:36:29

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

如果您有一个XML引用的XSD,那可能是实施数组(或列表)。

0

的一种方式......可以帮助你

  1. 读取XML到数据集。
  2. 根据表格行迭代数据集并将每个行实体添加到列表中。
  3. 将列表显示为数组或列表本身。
0

我不知道是否有执行此操作的.NET类直接或没有,但如果没有,你有两个选择:

1。将XML加载到数据集中,然后在数据集中循环并设置数组的元素。

2。获取XML节点编号,然后遍历XML并读取每个节点元素,然后将其放入数组中。

希望这是有用的