Моя цель состоит в том, чтобы использовать эту таблицу стилей XSLT для удаления всего узла LoanSecondaryStatus, когда StatusDate имеет значение 1900-01-01T00: 00: 00, но в остальном сохранить узел, когда он есть какой-либо другой Дата.Удалить XML-узел на основе значения атрибута с помощью XSLT
У меня есть следующий XML:
<Loans>
<Loan>
<LoanSecondaryStatus>
<StatusName>Application Started</StatusName>
<StatusDate>1900-01-01T00:00:00</StatusDate>
</LoanSecondaryStatus>
<LoanSecondaryStatus>
<StatusName>Application Finished</StatusName>
<StatusDate>2016-03-02T00:00:00</StatusDate>
</LoanSecondaryStatus>
</Loan>
</Loans>
А вот XSLT, я использую, чтобы попытаться удалить узел LoanSecondaryStatus:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/LoanSecondaryStatus[not(StatusDate='1900-01-01T00:00:00')]"/>
</xsl:stylesheet>
Да что работал. Как это работает без «нет»? – dc922
@ dc922 Ваш первый шаблон - это шаблон [identity transform] (https://en.wikipedia.org/wiki/Identity_transform). Он копирует все *, как есть *. Второй шаблон предоставляет исключение. Он соответствует узлу, который вы хотите удалить, и ничего не выводит. –