XSLT для удаления тегов, не работающих для файла XML - PullRequest
1 голос
/ 06 сентября 2011

У меня есть следующий XML-файл

<?xml version="1.0" encoding="utf-8"?>
<article>
<Details>
<date>Posted: 08/22/2011 </date>
<title>Hi this is Jake. I am Smart</title>
<text></text>
</Details>
</article>

У меня есть следующий XLST для удаления тега Details и / Details

<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="Details"><xsl:apply-templates/></xsl:template>

Ожидаемый результат

<?xml version="1.0" encoding="utf-8"?>
<article>

<date>Posted: 08/22/2011 </date>
<title>Hi this is Jake. I am Smart</title>
<text></text>

</article>

Я попробовал это. Но это не удаление Теги «Подробности» и «/ Детали».

1 Ответ

0 голосов
/ 06 сентября 2011

Это

<xsl:template match="Details"><xsl:apply-templates/></xsl:template>

сам удалит <Details>, но также обработает его содержимое . Используйте

<xsl:template match="Details" />

чтобы полностью удалить его (тег и содержимое).

(Если <Details> все еще появляется в вашем выводе, значит, ваш вопрос не завершен.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...