2
我目前使用VS2008,C#3.5和LINQ來讀取XML文件。 (稱之爲A.xml)我想用xinclude在A.xml中包含其他XML文件。我最初的嘗試失敗了,我還沒有發現任何現有的關於這兩者如何協同工作的信息。如何使用LINQ來讀取包含xincluded文件的XML?
我創建查詢的根元素通過調用XElement.Load() 是否有其他方式創建將處理include語句的根元素?
例如:
文件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元素沒有被處理,所以在可評估的元素中沒有TAG_B元素。