從XML

2011-05-09 16 views
2

創建實體我有下面的XML結構從XML

<T> 
<F> 
    <H> 
    <H1>some value</H1> 
    <H2>some value</H2> 
    <H3>some value</H3> 
    </H> 
    <O> 
    <P>some value</P> 
    <TI>some value</TI> 
    <TI>some value</TI> 
    </O> 
    <R> 
    <PTY>some value</PTY> 
    <PTY>some value</PTY> 
    <PTY>some value</PTY> 
    </R> 
</F> 
<T> 

我需要解析這個XML在C#和獲取值了他們的進一步導出爲CSV文件。 我的查詢是如何去創建此XML的實體

+0

請舉例說明該實體的外觀。以及你計劃如何CSV。 – 2011-05-09 15:21:39

+0

這是一個[實體](http://www.tizag.com/xmlTutorial/xmlentity.php)。當你談論一個實體時你打算做什麼? – ceving 2011-05-09 15:22:12

回答

1

你可以玩XmlSerializer及其related attributes

只要XML不是太複雜,就沒有太多的工作要做。

讀取XML:

var serializer = new XmlSerializer(typeof(SerializableObject)); 

SerializableObject deserialized; 

using (var stream = new FileStream(@"C:\test.xml", FileMode.Open)) 
{ 
    deserialized = (SerializableObject)serializer.Deserialize(stream); 
} 

的SerializableObject看起來就像這樣:

[Serializable] 
[XmlRootAttribute("T")] 
public class SerializableObject 
{ 
    ... 
} 

獎金懶惰的程序員:您可以只使用Xsd.exe蠻力從創建一個對象XML文件。然後調整結果以滿足您的需求。

+0

Xsd.exe做了工作!謝謝馬克 – Nishant 2011-05-11 13:56:32

1

您可以使用LinqToXml解析xml。 StringBuilder將有助於生成CSV。

我認爲這些How Tos將是有用的。他們描述了你解析這個XML所需的全部內容。

0

使用System.Xml.Linq添加; 然後你可以做類似這樣的事情:

XDocument xml = XDocument.Load(@「.... \ People.xml」); (「person」) 其中(int)p.Element(「id」)== 1 select p;