2010-08-18 99 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並讀取每個節點元素,然後將其放入數組中。

希望這是有用的