Мне нужно разобрать данный XML-файл для определенного содержимого. К сожалению, у меня есть только xmllint WITHOUT xpath в моей системе (и мне не разрешено устанавливать/обновлять любые другие источники). XML, будет содержать:Анализ синтаксиса в bash
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<CreateIncidentResponse xmlns="http://schemas.hp.com/SM/7" xmlns:cmn="http://schemas.hp.com/SM/7/Common" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" message="Success" returnCode="0" schemaRevisionDate="2016-02-16" schemaRevisionLevel="2" status="SUCCESS" xsi:schemaLocation="http://schemas.hp.com/SM/7 /Incident.xsd">
<model>
<keys>
<IncidentID type="String">IM0832268</IncidentID>
</keys>
<instance recordid="IM0832268 - Paul test 3 incident via soap" uniquequery="number="IM0832268"">
<IncidentID type="String">IM0832268</IncidentID>
<Category type="String">request for change</Category>
<OpenTime type="DateTime">2016-03-18T16:06:28+00:00</OpenTime>
<OpenedBy type="String">Harlass, Alexander</OpenedBy>
<Priority type="String">4</Priority>
<Urgency type="String">medium</Urgency>
<UpdatedTime type="DateTime">2016-03-18T16:06:28+00:00</UpdatedTime>
<AssignmentGroup type="String">TS3-AOS</AssignmentGroup>
<Description type="Array">
<Description type="String">RH test incident description via soap row 1</Description>
<Description type="String">RH test incident description via soap row 2</Description>
</Description>
<Contact type="String">Harlass, Rudolf</Contact>
<Title type="String">Paul test 3 incident via soap</Title>
<TicketOwner type="String">INTEGRATION.OVO</TicketOwner>
<UpdatedBy type="String">INTEGRATION.OVO</UpdatedBy>
<Status type="String">Open</Status>
<Area type="String">it products</Area>
<Subarea type="String">utilization</Subarea>
<ProblemType type="String">request for change</ProblemType>
<Impact type="String">low</Impact>
<Service type="String">PI Automation and Orchestration Service</Service>
<VIP type="Boolean">false</VIP>
<TargetResolutionDate type="DateTime">2016-03-25T15:00:00+00:00</TargetResolutionDate>
<SOD type="String">OML</SOD>
<SourceId type="String">4711</SourceId>
<UserIncident type="Boolean">false</UserIncident>
<AlertId type="String">4712</AlertId>
<MonitoredId type="String">MI4713</MonitoredId>
</instance>
</model>
<messages>
<cmn:message type="String">Audit Record successfully recorded and added.</cmn:message>
</messages>
</CreateIncidentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
В конце концов я должен был бы выход, как это:
Create SUCCESS
Messages:
Audit Record successfully recorded and added.
Incident ID: IM0832268
Status: Open
Severity: 4
Brief Description: RH test incident description via soap row 1
Opened by: integration.ovo
Opened time: March 20, 2016 11:54:08 PM CET
Я знаю, как создать строку, содержащую выход, но, к сожалению, я не то, что знакомы с sed или аналогичными инструментами.
Любая помощь по извлечению необходимых строк из xml будет оценена по достоинству.
Заранее спасибо
У вас есть [xsltproc] (http://xmlsoft.org/XSLT/xsltproc.html) в вашей системе? – Tomalak
К сожалению, не – user3322838
(Следуйте этому комментарию, если вам нужен быстрый взлом. Это не долгосрочное решение.) Даже если вы ничего не можете установить, вы обычно можете скомпилировать и скопировать двоичные (& зависимости) в эту систему на путь, на который у вас есть разрешение на запись. Худший случай, '/ tmp' - чтение-запись. Вы можете попробовать скопировать новую версию 'xmllint' в этот путь и выполнить ее оттуда. – anishsane