2016-08-18 12 views
0

におけるXMLのリファレンス私は、私がコンテンツを編集した場合、将来的にあればdisplay.xmlあるXMLファイルを別のXMLファイルに表示する方法。別のXML

にperson.xmlの内容を表示したいと思い

person.xmlと呼ばれる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> 

は、その後、あなたがDTDを許可し、URIを解決するためにXmlReaderSettingsとしたXmlReaderを設定する必要があり、あなたの.NETコードに:

 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> 
関連する問題