2010-08-12 11 views
6

Supposons que jeExiste-t-il un moyen d'incorporer un extrait de code dans un autre?

  • extrait A
  • extrait B
    snippet Acontientsnippet fois B navecn> 1 .

En ce moment j'ai copié le contenu de extrait B dans extrait de code A. Cela a l'inconvénient, que chaque fois que je change snippet B, je dois également modifier extrait A. Par conséquent, ma question est de savoir s'il existe une sorte d'énoncé permettant d'intégrer un extrait dans un autre.
par exemple.
<externalsnippet src=".\snippetB.snippet" />
ou quelque chose de similaire.

+0

Avez-vous déjà trouvé? – Daryl

Répondre

1

Vous pouvez utiliser une entité générale analysable externe de déclarer une référence d'entité pour extrait B puis l'utiliser n nombre de fois à l'intérieur de l'extrait A.

Quand extrait A est analysé, les références d'entités sera développé et le contenu de l'extrait B sera inclus à chaque endroit où l'entité a été utilisée.

Par exemple, supposons que vous avez un fichier appelé snipppetB.xml:

<snippetB> 
    <foo>Content goes here</foo> 
</snippetB> 

Et un fichier pour snippet A déclaré une entité appelée snippetB faisant référence snippetB.xml et l'a utilisé quatre fois :

<!DOCTYPE snippetA [ 
    <!ENTITY snippetB SYSTEM "./snippetB.xml"> 
]> 
<snippetA> 
<a>&snippetB;</a> 
<b>&snippetB;</b> 
<c>&snippetB;</c> 
<d>&snippetB;</d> 
</snippetA> 

Lorsque snippetA.xml est analysé, le contenu XML serait l ook comme ceci:

<snippetA> 
<a> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </a> 
<b> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </b> 
<c> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </c> 
<d> 
<snippetB> 
    <foo>Content goes here</foo> 
    </snippetB> 
    </d> 
    </snippetA>