如何在xml中编写相对的unix路径

时间:2009-04-17 06:21:43

标签: xml linux path

当我在unix中运行一个进程时,路径指向/ abc / 1/2/3

我在xml中为在path中运行的进程设置属性。 我有一个属性

< property name="log.path" value="/abc/4/5"/ >

问题是我不能像上面那样给出绝对路径(“/ abc / 1/2/3”)。我必须给出类似“../../../ 4/5”的内容。

< property name="log.path" value="../../../4/5"/ >

我的问题是上述评估不起作用的原因?目前它正在考虑将值给定的路径保持不变。

3 个答案:

答案 0 :(得分:2)

XML只是用于存储结构化数据的标准化格式......它没有指定意味着的元素属性,因为它不知道(例如)该属性在语义上是Unix类型路径。

所以这不是关于XML的问题,而是关于读取XML的应用程序如何处理指定路径。例如(如上所述),它认为当前的目录将影响相对路径的解释...假设应用程序实际正确解析了相对路径。

答案 1 :(得分:0)

查看http://en.wikipedia.org/wiki/Path_(computing)

简而言之,你所做的是绝对正确的。如果它不起作用,问题可能是当应用程序执行时,它在与您期望的文件夹不同的文件夹中执行。

如果您提供更多详细信息,可以解决

Tanmay

答案 2 :(得分:0)

好的,让我们分析一下。

  

当我在unix中运行一个进程时,路径指向/ abc / 1/2/3

现在该过程的可执行文件存在于 / abc / 1/2/3 / abc / 1/2/3 current working directory为你的过程?

如果进程的当前工作目录是 / abc / 1/2/3 ,并且该进程读取该XML文件并尝试使用系统调用(例如)直接使用其中的路径打开然后相对路径符号 ../../../ 4/5 应该有效。但是,如果路径 / abc / 1/2/3 不是当前工作目录而只是可执行文件的位置,那么 ../../../ 4/5 无法工作,因为当前工作目录不是 / abc / 1/2/3 ,并且相对路径始终对当前工作目录起作用。

确保检查 / abc / 1/2/3 是否真的是当前工作目录而不仅仅是可执行位置。