我有以下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>
我需要在C#中解析这个xml并从中获取值以进一步导出到CSV文件。 我的问题是你如何为这个XML创建一个实体
答案 0 :(得分:1)
答案 1 :(得分: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文件创建对象。然后根据您的需要调整结果。
答案 2 :(得分:0)
使用System.Xml.Linq添加; 然后你可以做类似的事情:
XDocument xml = XDocument.Load(@“.... \ People.xml”); var query = from x in xml.Elements(“people”)。Elements(“person”) where(int)p.Element(“id”)== 1 选择p;