您是否可以在XML中声明和使用变量,而无需使用XSL来转换/解析XML

时间:2014-02-25 14:52:37

标签: xml

假设您要在应用中阅读XML元素,但是您有多个环境,其中相关文件的路径可能会发生变化

<root>
  <element ID="MyConfigFile" url="c:\Program Files\MyProgram\resources\MyProgramconfig.xml" />
  <element ID="Executable" url="c:\Program Files\MyProgram\Prog.exe" />
</root>

...所以你想要引用相对目录

@ path =“c:\ Program Files \ MyProgram \”

<root>
  <element ID="MyConfigFile" url="@path\resources\MyProgramconfig.xml" />
  <element ID="Executable" url="@path\Prog.exe" />
</root>

您可以使用XML本身声明的变量来引用相对目录路径吗?

2 个答案:

答案 0 :(得分:11)

您需要在文件中添加DOCTYPE声明,在那里声明一个实体,然后在文档正文中引用该实体。

<!DOCTYPE root [
  <!ENTITY path "c:\Program Files\MyProgram">
]>
<root>
  <element ID="MyConfigFile" url="&path;\resources\MyProgramconfig.xml" />
  <element ID="Executable" url="&path;\Prog.exe" />
</root>

答案 1 :(得分:0)

不确定,请尝试使用实体

<!ENTITY path "c:\Program Files\MyProgram\">

<element ID="MyConfigFile" url={&path + "resources\MyProgramconfig.xml"} />