2010-08-12 119 views
6

让我们假设我有有没有办法将一段代码嵌入到另一段代码中?

  • 片段一个
  • 片断乙
    其中列表A包含段B n的时间N> 1

现在我抄片断乙的内容转换成列表A。这有缺点,只要我更改片段B,我必须另外更改片段A。因此,我的问题是,是否有某种声明将一个片段嵌入另一个片段?
例如
<externalsnippet src=".\snippetB.snippet" />
或类似的东西。

+0

你有没有想过这个? – Daryl 2011-11-12 03:27:47

回答

1

你可以使用一个外部解析一般实体声明实体引用的片断乙,然后用它的n内部片段A.次数

当片断A被解析时,实体引用将被扩展,并且来自片段B的内容将被包括在使用该实体的每个地点。

例如,假设你有一个名为snipppetB.xml文件:

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

而对于文件列表A声明的实体,称为snippetB引用snippetB.xml,并用它的四倍:

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

当snippetA.xml被解析,XML内容会升ook像这样:

<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> 
相关问题