我有一个名为person.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 :(得分: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>