2

我目前正在使用 VS2008、C# 3.5 和 LINQ 来读取 XML 文件。(称为 A.xml) 我想用 xinclude 在 A.xml 中包含其他 XML 文件。我最初的尝试失败了,我还没有找到任何关于这两者如何协同工作的现有信息。

我正在通过调用 XElement.Load() 创建查询的根元素 是否有其他方法可以创建将处理包含语句的根元素?

示例:
文件 A.xml

<A>  
  <xi:include href="B.xml" xmlns:xi="http://www.w3.org/2003/XInclude"/>  
</A>

文件 B.xml

<B>  
  <TAG_B Name="foo">  
    <TAG_C attr="bar"/>
  </TAG_B>  
</B>

C#代码:

 XElement root = XElement.Load(@"A.xml");
 var b = from TAG_B in root.Descendants("B")
         let name = (string)TAG_B.Attribute("Name")
         where name.Equals("foo")
         select TAG_B;

我希望 XElement.Load 将包含 B.xml 的内容并生成以下内容:

<A> 
  <B>  
    <TAG_B Name="foo">  
      <TAG_C attr="bar"/>
    </TAG_B>  
  </B>
</A>

不幸的是,include 元素没有被处理,所以 enumarable 中没有 TAG_B 元素。

4

1 回答 1

1

LINQ 和 .Net 框架不支持 XInclude。SourceForge有一个免费项目,它为 .Net 实现 XInclude,但我认为它不支持 LINQ。

于 2010-03-09T01:14:20.393 回答