У меня есть XML-файл, который выглядит следующим образом:извлечение данных из XML в зависимости от содержания конкретного тега
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:policies xmlns:ns1="http://www.companyname.nl/exchange/policyimport" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<policy>
<serialnumber>159</serialnumber>
<relationnumber>159</relationnumber>
<policynumber>2013000001</policynumber>
<soort>2002</soort>
<policyStatus>1</policyStatus>
<startdate>2001-03-16</startdate>
<enddate>2016-03-16</enddate>
<label1>0</label1>
<label2>100</label2>
<btw>true</btw>
</policy>
<policy>
<serialnumber>159</serialnumber>
<relationnumber>159</relationnumber>
<policynumber>2013000002</policynumber>
<soort>2003</soort>
<policyStatus>1</policyStatus>
<startdate>2001-03-16</startdate>
<enddate>2016-03-16</enddate>
<label1>0</label1>
<label2>100</label2>
<btw>false</btw>
</policy>
</ns1:policies>
Я хотел бы, чтобы извлечь данные из тега с Баш скрипт, но в зависимости от содержания другого тега. Так, например: Если содержимое <btw>
истинно, тогда получите содержимое <policynumber>
в том же блоке (в данном случае 2013000001).
Если содержимое <soort>
равно 2003 году, тогда получите содержимое <policynumber>
в том же блоке (в данном случае 2013000002).
Возможно ли это в сценарии bash? Я попытался понять это с помощью xmlstarlet, но я новичок и не могу сделать это. TIA!
выглядит, если есть префикс пространства имен, указанное делает похоже, не работает. – Rao
Здесь не требуется префикс пространства имен. Он был протестирован с помощью XML OP, и он работает по мере необходимости. – kjhughes
Я имел в виду, что если для каждого элемента в xml есть префикс пространства имен, для xpath также потребуется тот же префикс. Конечно, команда, предоставленная вами, работает для данного xml в исходном сообщении. – Rao