2016-08-18 85 views
0

我有一个名为person.xml如何在另一个文件中显示一个xml文件。 XML的另一个XML

一个XML文件,我想在display.xml在未来显示person.xml的内容

所以,如果,如果我编辑的内容参考person.xml,那么它也会反映在display.xml上。

我想为xml引用。

例如person.xml由

person.xml:

<person> 
    <name>John</name> 
    <age>18</age> 
    <hair>Brown</hair> 
    <eyes>Blue</eyes> 
</person> 

那么应该是display.xml

代码我目前display.xml作为

<group> 
    <personlink xlink:href="person.xml" xlink:show="embed" xmlns:xlink="http://www.w3.org/1999/xlink"/> 
</group> 
+0

无论XLink的也不XInclude的由Microsoft的XML解析器和工具分别支持。支持基于DTD的引用,但是在浏览器等其他领域支持很差。 –

回答

0

您可以使用在DTD中声明的外部实体,如下所示:

<!DOCTYPE group [ 
    <!ENTITY person SYSTEM "person.xml"> 
]> 
<group> 
    &person; 
</group> 

然后在你的.NET代码,你需要建立与XmlReaderSettings一个XmlReader允许DTD和解决的URI:

 XDocument doc; 
     using (XmlReader xr = XmlReader.Create("../../display.xml", new XmlReaderSettings() { DtdProcessing = DtdProcessing.Parse, XmlResolver = new XmlUrlResolver() })) 
     { 
      doc = XDocument.Load(xr); 
     } 
     Console.WriteLine(doc); 

所以,结果是

<!DOCTYPE group [ 
    <!ENTITY person SYSTEM "person.xml"> 
]> 
<group> 

<person> 
    <name>John</name> 
    <age>18</age> 
    <hair>Brown</hair> 
    <eyes>Blue</eyes> 
</person> 

</group> 
相关问题