如何使用C#将属性从同一XML文件中的同一命名标记附加到XML标记

时间:2013-06-07 06:37:02

标签: c# xml

我很困惑在运行时使用C#从同一个xml文件的其他位置向同一个命名标记添加属性到XML标记。

xml文件看起来像这样 - “sample.xml中”

<university>
  <college>
    <name> Something </name>
    <estd.> Something </estd.>
  </college>
</university>

我在相同的xml文件 - “Sample.xml”中的其他地方有另一个代码

<Deemed>
  <college>
     <affiliated> something </affiliated>
     <year> something </year>
  </college>
</Deemed>

现在我要做的是使用C#将大学标签的数据从这两个不同的父标签转换为单个变量。

应该是这样的 -

College data  = //Get data from Xml loaded into this object ; 

数据”的属性应该是 name,estd。,affiliated year ,所有这些都是从同一个xml文件加载的。

我应该能够访问data.name,data.estd,data.affiliated和data.year。

我尝试了很多将这些XML数据加载到变量中的组合,但却无法这样做。

它将大学标签中的所有属性加载到变量中,然后当我再次加载数据时,它将这些属性替换为带有来自视觉标记的属性。

任何人都可以帮忙????

1 个答案:

答案 0 :(得分:0)

您的要求并不十分清楚,但您可以像这样使用LINQ to XML:

XDocument doc = XDocument.Load("data.xml");
Dictionary<string, string> collegeSubelements = doc.Descendants("college")
   .Elements()
   .ToDictionary(x => x.Name.LocalName, x => (string) x);

这将创建一个字典,其中包含“name”,“estd。”,“affiliated”,“year”和相应值的键。当然,假设你想要所有大学元素。