我正在编写我的第一个配置文件,想知道是否有一种方法可以设置“phonenum = 123456789”一次,然后在我的xml文件中的其他地方使用“phonenum”而不是“123456789”。
例如:
<parameter key="phonenum" value ="123456789" />
<parameter key="urls" value = "/phoneNumbers/123456789/.../,/phoneNumbers/123456789/.../.../.../,/phoneNumbers/123456789/.../.../.../" />
现在在“urls”键的值中,我想使用“phonenum”而不是实际的数字。这种方式,如果有人必须改变它,他们只在一个地方(在其定义的地方)而不是在每个网址中更改它。
任何帮助将不胜感激! 谢谢!
答案 0 :(得分:0)
正如@keshlam所指出的,“内置”XML方法是使用实体引用。在您的DTD中,您可以定义
<!ENTITY phonenum ....>
然后在您的文档正文中,您可以将其称为&phonenum;
。电话号码的实际定义可以在DTD中内联,也可以在从DTD引用的单独文件中。
很多人使用这种机制,但不是很灵活。有一些缺点:
设置电话号码意味着修改文件存储中的文件(或使用一些相当复杂的黑客来重定向应用程序中的引用)
文件上的每个操作(例如XSLT转换)都会扩展实体引用,将其替换为实际的电话号码。但有时您可能希望将其留作实体参考,例如如果您只想更改文档中的样板文本。
另一种方法是使用“填空”XSLT样式表替换XML文档。样式表可以有一个参数
<xsl:param name="phoneNumber" select="'123456789'"/>
然后您可以将URL写为
<parameter key="urls" value = "/phoneNumbers/{$phoneNumber}/.../,/phoneNumbers/{$phoneNumber}/.../.../.../,/phoneNumbers/{$phoneNumber}/.../.../.../" />