как я могу получить значение из текста, который является неполным XML-файлом, а затем сохранить его в переменной

У меня возникла проблема при форматировании неполного XML-файла в правильный XML-файл с тегами, чтобы я мог легко получить из него значение XML внутри тега.

Выводимый текст выглядит следующим образом:

Input parameters 
         User       : abcd
         User       : abc@1234
         User Agent : pqr Server/12.0/1.0
         file  Name : tmpfile.9133
         Timeout    : 5
         Nr  thread : 1
         Nr resends : 1
_____ Adresses:____
http://localhost:12345/Mrr
File tmpfile.9133 Contains  1  requests.
start thread 0
---------------- Sending --------------------
<methodCall>
<methodName>Test1</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>row1</name>
<value>
<i4>1</i4>
</value>
</member>
<member>
<name>main1</name>
<value>ADM</value>
</member>
<member>
<name>originTransactionID</name>
<value>464372231</value>
</member>
<member>
<name>min</name>
<value>99912345678</value>
</member>
<member>
<name>originTimeStamp</name>
<value>
<dateTime.iso8601>20150929T02:20:32+0300</dateTime.iso8601>
</value>
</member>
<member>
<name>main2</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>ID</name>
<value>
<i4>115001</i4>
</value>
</member>
<member>
<name>ValueNew</name>
<value>
<string>0</string>
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>originHostName</name>
<value>rat</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

---------------- Recived  --------------------
HTTP/1.1 200 OK
X-Powered-By: abc
Date: Mon, 28 Sep 2015 23:20:32 GMT
Server: xyz
Set-Cookie: JSESSIONID=15du5xtimqk42qoeej6o8l0u6;Path=/
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 1489
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?><methodResponse><params><param><value><struct><member><name>fsdfsdfsdf</name><value><array><data><value><i4>536871492</i4></value></data></array></value></member><member><name>sdfsdfsdf</name><value><array><data><value><i4>0</i4></value></data></array></value></member><member><name>txnID</name><value><string>464372231</string></value></member><member><name>responseCode</name><value><i4>0</i4></value></member><member><name>info</name><value><array><data><value><struct><member><name>ID</name><value><i4>115001</i4></value></member><member><name>Value</name><value><string>0</string></value></member><member><name>Information</name><value><array><data><value><struct><member><name>ID</name><value><i4>11500101</i4></value></member><member><name>TSource</name><value><i4>3</i4></value></member><member><name>TValue</name><value><string>524288000</string></value></member></struct></value><value><struct><member><name>TID</name><value><i4>11500102</i4></value></member><member><name>TSource</name><value><i4>3</i4></value></member><member><name>TValue</name><value><string>519045120</string></value></member></struct></value></data></array></value></member></struct></value></data></array></value></member></struct></value></param></params></methodResponse>
----------------------------------------------

Теперь я хочу выполнить 2 операции:

  1. сделать этот вывод обрезанным от метки --------------- - Получено -------------------- до конца и сохранено в отдельной переменной.

  2. Затем обрежьте этот файл так, чтобы он стал идеальным XML-файлом с правильными тегами и всем ... т.е. начиная с до .

Я хочу выполнить две вышеуказанные задачи только на сервере Solaris. Я пробовал использовать xmllint --xpath , но похоже, что xpath отсутствует в пакете. Поэтому, пожалуйста, предложите любой другой способ.

-1
30.09.2015, 02:50
0 ответов

Теги

Похожие вопросы