Fehler beim Laden einer Remote-XML-Datei aus einer Variablen

548
igor

Versuch, die XML-Datei von einem anderen Server in eine Variable zu lesen

test=$(ssh root@server "cat /dir/file.xml") 

Dabei echo $testwird jedoch die XML-Datei im One-Liner-Format gedruckt.

Dann versuchen, xmllintauf diese Datei auszuführen ,

xmllint $test 

und bei jedem Tag den folgenden Fehler erhalten.

Warnung: Externe Entität "..." konnte nicht geladen werden

Hinweis: Wenn Sie dasselbe Verfahren ausführen, aber in der lokalen XML-Datei (ohne ssh), funktioniert es und Sie erhalten das erwartete Ergebnis.

Irgendwelche Weise, dieses zu lösen Oder das xmllintTool aus der Ferne verwenden?

0

1 Antwort auf die Frage

2
Antonio Ospite

Beachten Sie, dass Ihre $testVariable den Inhalt der XML-Datei enthält, nicht den Pfad.

Wie dem auch sei, es zu zeigen, die Räume intakt zu halten, geben Sie die Variable: echo "$test".

Um ein Programm auszuführen, das die Eingabe aus einer Variablen abruft, können Sie stdin redirecton verwenden. In diesem Fall wäre dies:

echo "$test" | xmllint - 

Sie können auch die Verwendung einer Variablen vermeiden:

ssh root@server "cat /dir/file.xml" | xmllint - 

Schließlich können Sie in bash auch die Prozessersetzung verwenden (siehe man bash):

xmllint <(ssh root@server "cat /dir/file.xml")