Я пишу сценарий оболочки unix, где мне нужно довольно печатать XML-файлы, , но уловка в том, что есть части, которые я могу не трогать. А именно, это скрипты Apache Jelly, которые содержатся в файлах XML , которые мне нужны, чтобы печатать. Поэтому мне нужно, чтобы преобразовать этотКак частично довольно печатать XML-файлы из командной строки?
<proc source="customer"><scriptParam value="_user"/><scriptText><jelly:script>
<jelly:log level="info">
this text needs
to keep its indent level
and this is none of my business
</jelly:log>
<!-- get date -->
<sql:query var="rs"><![CDATA[
select sysdate
from dual
]]></sql:query>
</jelly:script>
</scriptText></proc>
В этот
<proc source="customer">
<scriptParam value="_user"/>
<scriptText>
<jelly:script>
<jelly:log level="info">
this text needs
to keep its indent level
and this is none of my business
</jelly:log>
<!-- get date -->
<sql:query var="rs"><![CDATA[
select sysdate
from dual
]]></sql:query>
</jelly:script>
</scriptText>
</proc>
Обратите внимание, что единственное изменение в jelly:script
элемента новой строки перед ним.
Не удалось найти какой-либо вариант в xmllint
или xmlstarlet
игнорировать определенный элемент. Есть ли какой-нибудь инструмент, который может помочь мне в этом? Я нахожусь на Linux, если это имеет значение.
«, но подвох в том, что есть участки их, которых я не могу тронуть ». - Я думаю, что это дисквалифицирует «xmlstarlet», «xmllint» и, возможно, большинство инструментов на основе парсера XML. В противном случае я бы предложил [xmlstarlet ed] (http://stackoverflow.com/a/33292292/319698). – npostavs