相当于XML中的#define?

equivalent of #define in XML?

我可以在一个单独的文件中定义下面示例中的“20”吗,我可以参考,类似于C/C++中的#define?如果不行,有什么办法可以达到预期的效果吗?

<p>The width should be 20 cm</p>

当然,它叫做 "external entity"。

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE p [
  <!ELEMENT p (#PCDATA)>
  <!ENTITY width SYSTEM "width.xml">
]>
<p>The width should be &width; cm</p>

width.xml:

<?xml version="1.0" standalone="no" ?>
20

但就我个人而言,我不喜欢这种机制,因为它不够灵活。通常我通过 XSLT 样式表处理我的 XML,然后我发现使用处理指令更方便:

<?xml version="1.0" standalone="no" ?>
<p>The width should be <?width?> cm</p>

使用样式表:

<xsl:stylesheet ....>

<xsl:param name="width"/>

<xsl:template match="processing-instruction('width')">
  <xsl:value-of select="$width"/>
</xsl:template>

XSLT 方法使得从您的应用程序中提供宽度值作为参数变得更加容易。