Как проверить, что узлы и их подузлы пусты? - PullRequest
0 голосов
/ 10 декабря 2018

Как я могу проверить такие узлы, если они пустые?

<Address>
  <Street></Street>
  <Building></Building>
  <Postcode></Postcode>
  <Town></Town>
  <State></State>
  <Country></Country>
</Address>

1 Ответ

0 голосов
/ 10 декабря 2018

вы можете проверить, является ли узел и его подузлы пустыми, с помощью:

<xsl:if test="normalize-space(.)=''">All nodes empty: true&#xA;</xsl:if>

или вы можете проверить, есть ли у него пустой узел, с помощью:

<xsl:if test="normalize-space(*)=''">Contains an empty node: true&#xA;</xsl:if>

, когда эта таблица стилейзапускается против вашего входного XML:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">

    <xsl:output omit-xml-declaration="yes"/>

    <xsl:template match="Address">
        <xsl:if test="normalize-space(.)=''">All nodes empty: true&#xA;</xsl:if>
        <xsl:if test="normalize-space(*)=''">Contains an empty node: true&#xA;</xsl:if>
    </xsl:template>

</xsl:stylesheet>

это даст:

All nodes empty: true
Contains an empty node: true

См. в action .

...