Чтение xml-файла на локальной машине (на котором установлен пакет ActiveTCL и ожидаемый пакет) и запись его на порожденную машину
Я пытаюсь прочитать XML-файл, который находится на моем локальном компьютере, и записать его в порожденный процесс. Когда я выполняю код, используя put и gets, XML-файл печатается в приглашении TCl open, но не в приглашении порожденного процесса. Итак, после небольшого приближения, команда send используется для отправки данных о порожденном процессе. Но чтение через get, а затем запись с использованием send не помогает. Я прилагаю свой код ниже. Пожалуйста помоги. Заранее спасибо.
package require Expect
package require tdom
log_file -noappend myscript.log
set spawned_machine (some IP here)
set username un
set password pw
set timeout 10
spawn plink.exe -ssh $username@$spawned_machine -pw $password
expect "*myspawnedmachine>"
exp_send "loadlicense\r"
expect "*Press CTRL-D on a blank line when done."
set filename "C:/newfolder/pqr.xml"
set size [file size $filename]
set fd[open $filename]
fconfigure $fd -buffering line
gets $fd data
while{$data != ""} {
set data1[puts $data]
gets $fd data
send $data1
}
close $fd
exp_send "\004"
expect "*myspawnedmachine>"
Если я изменю вышеупомянутую логику для чтения всего файла pqr.xml за один раз, т.е.
set filename "C:/newfolder/pqr.xml"
set size[file size $filename]
set fd[open $filename r]
set xml[read $fd]
set data[split $xml "\n"]
send $xml
close $fd
exp_send "\r"
exp_send "\004"
expect "*myspawnedmachine>"
Он отправляет его на порожденную машину с помощью send, но XML-файл отправляется не так, как ожидалось. Проблема в том, что он не отправляется должным образом строка за строкой, вместо этого все строки печатаются на одной строке при порожденном процессе. Давайте рассмотрим XML-файл здесь
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
Итак, в моем порожденном компьютере этот XML-файл печатается как
<?xml version="1.0"?><catalog> <book id="bk101"><author>Gambardella, Matthew</author> <title>XML Developer's Guide</title> <genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date><description>An in-depth look at creating applications with XML.</description> </book>
То есть все на одной линии.
в то время как ожидается, что он будет отправлен как,
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
Я знаю, это длинный вопрос, но любая помощь будет принята с благодарностью. Заранее спасибо.