示例数据:
<school>
<student_details>
<student>
<id>1</id>
<name>manju</name>
<subject>
<subject_name>maths</subject_name>
</subject>
<subject>
<subject_name>science</subject_name>
</subject>
</student>
<student>
<id>2</id>
<name>raghu</name>
<subject>
<subject_name>maths</subject_name>
</subject>
<subject>
<subject_name>sanskrit</subject_name>
</subject>
</student>
<student>
<id>3</id>
<name>vijay</name>
<subject>
<subject_name>maths</subject_name>
</subject>
</student>
<student>
<id>4</id>
<name>sunil</name>
<subject>
<subject_name>sanskrit</subject_name>
</subject>
</student>
<student>
<id>5</id>
<name>anil</name>
<subject>
<subject_name>social</subject_name>
</subject>
<subject>
<subject_name>english</subject_name>
</subject>
<subject>
<subject_name>Kannada</subject_name>
</subject>
</student>
<student>
<id>6</id>
<name>midhun</name>
<subject>
<subject_name>social</subject_name>
</subject>
<subject>
<subject_name>sanskrit</subject_name>
</subject>
<subject>
<subject_name>Kannada</subject_name>
</subject>
</student>
</student_details>
<exclude>
<exclude_subjects>
<subject_name>maths</subject_name>
</exclude_subjects>
<exclude_subjects>
<subject_name>science</subject_name>
</exclude_subjects>
</exculde>
<extra>
<extra_subjects>
<subject_name>sanskrit</subject_name>
</exclude_subjects>
<exclude_subjects>
<subject_name>arabic</subject_name>
</extra_subjects>
</extra>
</school>
下面是我的xsd:
<schema>
<element name="school">
<complexType>
<sequence>
<element name="student_details>
<complexType>
<sequence>
<element name="student" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="Id" type="sting"/>
<element name="name" type="sting"/>
<element name="subject" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="subject_name" type="sting"/>
</complexType>
</sequence>
</element>
</complexType>
<sequence>
</element>
</complexType>
<sequence>
</element>
<element name="exclude">
<complexType>
<sequence>
<element name="exclude_subjects" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="subject_name" type="sting"/>
</complexType>
</sequence>
</element>
</complexType>
<sequence>
</element>
<element name="extra">
<complexType>
<sequence>
<element name="extra_subjects" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="subject_name" type="sting"/>
</complexType>
</sequence>
</element>
</complexType>
<sequence>
</element>
</complexType>
<sequence>
</element>
</schema>
下面是我的xslt:
<xsl:template match="/school">
<output>
<xsl:for-each select="student_details/student[subject[not(subject_name = ../../../exclude/exclude_subjects/subject_name and subject_name = ../../../extra/extra_subjects/subject_name)]]">
<xsl:copy-of select="name"/>
</xsl:for-each>
</output>
</xsl:template>
我希望在满足条件时获得一个输出。这是示例xml。
我的要求是,如果学生包含exclude_subjects中没有的任何科目,或者如果学生包含extra_subjects中存在的科目,那么该学生姓名应该被分配给目标而不会重复。
例如:在上面给出的样本中,xml anil,sunil和midhun名称应该分配给目标。
请帮忙......