相当于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 方法使得从您的应用程序中提供宽度值作为参数变得更加容易。
我可以在一个单独的文件中定义下面示例中的“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 方法使得从您的应用程序中提供宽度值作为参数变得更加容易。