从 XML 创建实体

本文关键字:实体 创建 XML | 更新日期: 2023-09-27 17:56:07

我有以下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创建一个实体

从 XML 创建实体

您可以使用 XmlSerializer 及其相关属性。

只要 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);
}

可序列化对象将如下所示:

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

懒惰程序员的奖励:您可以使用 Xsd.exe 从 XML 文件暴力创建对象。然后根据您的需要调整结果。

您可以使用 LinqToXml 来解析 xml。StringBuilder将有助于生成CSV。

我认为这些操作方法会很有用。它们描述了解析此 xml 所需的所有内容。

使用 System.Xml.Linq 添加;然后你可以做类似的事情:

XDocument xml = XDocument.Load(@"....''People.xml");var query = from p in xml.Elements("people").元素("人")其中 (int)p.Element("id") == 1选择 P;