0

Currently, I met a problem when using XSLT to do a check in some XML file just like below

<?xml version="1.0" encoding="UTF-8"?>
<School> 
    <Grade name="grade1">
        <Class name=”Class1”>
            <LevelA>12</LevelA>
            <LevelC>1</LevelC >
        </Class>
    </Grade>
    <Grade name="grade2">
        <Class name=”ClassA2”>
            <LevelA>14</LevelA>
            <LevelC>0</LevelC>
        </Class>
        <Class name=”ClassB2”>
            <LevelA>10</LevelA>                 
            <LevelC>0</LevelC>
        </Class>
    </Grade>
    <Grade name="grade3"/>
    <Grade name="grade4">
        <Class name=”ClassA4”>
            <LevelA>12</LevelA>                 
            <LevelC>0</LevelC>
        </Class>
        <Class name=”ClassB4”>
            <LevelA>12</LevelA>                 
            <LevelC>2</LevelC>
        </Class>
    </Grade>
    <Grade name="grade5"/>
</School>

If All the Grade node contains Class (one or more), then write "Good" in the result XML file.

<xsl:if test="???">
    <p>
        <h3 style="color:green;">Good</h3>
    </p>
</xsl:if>

How to describe the condition at "???"?

1 Answer 1

1

Rather than checking if all the Grade elements contain a Class, check that there exist no Grade element without a Class.

Try this expression:

 <xsl:if test="not(//Grade[not(Class)])">
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.