2009-04-17 7 views
-2

quand je lance un processus unix le chemin pointe vers/abc/1/2/3Comment écrire chemin unix par rapport au format XML

Je suis en train d'une propriété dans un fichier XML pour un processus qui fonctionne dans le chemin. Une propriété que j'ai

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

problème est que je ne peux pas donner un chemin absolu ("/ abc/1/2/3") comme ci-dessus. Je dois donner quelque chose comme "../../../4/5".

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

Pourquoi l'évaluation ci-dessus ne fonctionne pas? Actuellement, il considère le chemin donné en valeur comme constant.

+2

Difficile d'y répondre sans détails sur les raisons pour lesquelles vous êtes limité de cette manière. Fournir un peu plus de détails s'il vous plaît?:) – Anthony

+0

s'il vous plaît ajouter un commentaire si quelqu'un le nie, afin que je puisse apprendre à connaître la cause. – harshit

+0

votre question n'est toujours pas claire. Pourquoi ne peux-tu pas donner un chemin absolu? – PiedPiper

Répondre

0

Découvrez http://en.wikipedia.org/wiki/Path_(computing)

En bref, ce que vous faites est tout à fait raison. Si cela ne fonctionne pas, le problème peut être que lorsque l'application s'exécute, elle s'exécute dans un dossier différent de celui que vous attendez.

peut être résolu si vous fournir plus de détails

Tanmay

2

XML est un format standardisé pour stocker des données structurées ... il ne précise rien sur ce que signifie attributs élément , car il n'a aucune idée que (par exemple) cet attribut est sémantiquement un chemin de type Unix.

Il ne s'agit donc pas vraiment d'une question sur XML, mais plutôt sur la façon dont l'application qui lit le XML gère les chemins spécifiés. Par exemple (comme mentionné), quel répertoire il considère actuel affectera l'interprétation des chemins relatifs ... en supposant que les chemins relatifs sont réellement analysés correctement par l'application.

0

Ok, analysons ceci.

quand je lance un processus en unix les points de trajectoire à/abc/1/2/3

fait maintenant l'exécutable pour le processus exister à /abc/1/2/3 ou est /abc/1/2/3 le current working directory pour votre processus?

Si le répertoire de travail courant du processus est /abc/1/2/3 et le processus lit le fichier XML et essaie d'utiliser le chemin là directement avec un appel système comme ouvert alors le chemin relatif notation ../../../4/5 devrait fonctionner. Si toutefois le chemin /abc/1/2/3 n'est pas le répertoire de travail actuel et seulement l'emplacement de l'exécutable alors ../../../4/5 ne peut pas fonctionner comme répertoire de travail courant n'est pas /abc/1/2/3 et les chemins relatifs fonctionnent toujours par rapport au répertoire de travail actuel.

Assurez-vous de vérifier si /abc/1/2/3 est vraiment le répertoire de travail actuel et pas seulement l'emplacement de l'exécutable.

Questions connexes