2014-02-25 56 views
6

假設您有一個要在應用中讀取的XML元素,但是您有多個依賴文件的路徑可能更改的環境您是否可以在XML中聲明和使用變量而不使用XSL來轉換/解析XML

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

...所以你會想對相對目錄

@路徑=參考 「C:\ Program Files文件\ MyProgram \」

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

你可以使用一個變量申報XML本身引用相對目錄路徑?

回答

9

您將需要一個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> 
+0

這個解決方案完美地工作!!!!!!!!!!!! – kick811

0

不能確定,請嘗試使用實體

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

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

請解釋你的問題究竟是什麼。 – Daenarys

+0

您可以使用直接在XML中聲明的變量來引用相對目錄或文件路徑嗎? – kick811

+0

與實體你可以聲明一個變量並在屬性中使用 – user3352217