Я хочу, чтобы узнать, как искать слова в XML-файл и удалить всю строку с помощью XSLTкак искать текст в XML-файл и удалите эту строку с помощью XSLT
Пример: abc.xml
<server>
<mbean code="org.jboss.varia.property.SystemPropertiesService"
name="abc.props:type=Service,name=abcprop">
<attribute name="Properties">
abc.def.ghi=123
ghi.klm.nop=123
qrst.tuv.wxy=123
zab.cde.fgh=123
ijk.lmn.opq=remove
rst.uvw.xyz=123
abc.tuv.nop=123
ajc.dzf.goi=123
</attribute>
</mbean>
</server>
Из приведенного выше примера я хочу найти слово «удалить» и удалить полную строку: ijk.lmn.opq=remove
Ожидаемый результат:
<server>
<mbean code="org.jboss.varia.property.SystemPropertiesService"
name="abc.props:type=Service,name=abcprop">
<attribute name="Properties">
abc.def.ghi=123
ghi.klm.nop=123
qrst.tuv.wxy=123
zab.cde.fgh=123
rst.uvw.xyz=123
abc.tuv.nop=123
ajc.dzf.goi=123
</attribute>
</mbean>
</server>
Update:
Я попытался следующий код
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[(@* != 'DELETE')]"/>
</xsl:stylesheet>
Некоторые, как ее не работает, его удаление каждую вещь в файле XML и показывая пустой файл.
В файле XML указаны строки, разделенные линией, или каждая строка в собственном элементе? –
Я не уверен, что это строки, но каждая строка сама по себе, если я удалю строку, там не будет пустой строки. – phani
Проблема, которая возникает у вас здесь, заключается в том, что ваш xml-файл на самом деле не является файлом xml.Вы уверены, что файл на самом деле так, как вы показали нам, или это текст, содержащийся внутри элемента, например ' ... '? –