2016-08-24 38 views
1

这是样本XML输入文件。我正在使用XSLT,如何检查特定节点的文件中,如果存在需要打印真或假如何识别/检查节点是否存在或不在xml中使用XSLT,如果存在修改xml并打印?

</persons>   
 
     '  <?xml version="1.0" ?> 
 
     <persons> 
 
     <person username="JS1"> 
 
     <name>John</name> 
 
     <family-name>Smith</family-name> 
 
     </person> 
 
     <person username="MI1"> 
 
     <name>Morka</name> 
 
     <family-name>Ismincius</family-name> 
 
     </person> 
 
    </persons> 

上面的示例XML文件我需要检查<name>节点是否存在。如果名称节点存在,则应使用XSLT将其打印在输出中。

<?xml version="1.0" ?> 
 
    <persons> 
 
    <person username="JS1"> 
 
    <name>John</name> 
 
    <family-name>Smith</family-name> 
 
    </person> 
 
    <person username="MI1"> 
 
    <name>Morka</name> 
 
    <family-name>Ismincius</family-name> 
 
    </person> 
 
    <person> 
 
    **<name>True</name>** 
 
    </person> 
 
</persons>

+0

任何人都可以帮忙,在这里检查xml中的节点或不使用xslt并打印输出xml文件,节点元素true或false True Nathon

+0

'name'元素在输入中出现两次,每个'人'一次。你想输出' True'如果'name'至少出现一次,或者如果它出现在所有'person'元素中?另请注意,您的输入XML格式不正确。除了从结尾''开始,xml声明在开始时需要正确执行。谢谢。 –

回答

0

如果上下文项目是<person>元素,然后

<xsl:copy-of select="name"/>

将输出name元素,如果它存在,并会做什么,如果它不存在。

如果你想输出<name>true</name>当且仅当至少有一个<name>元素在输入时,可以使用

<xsl:if test="//name"> 
    <name>true</name> 
</xsl:if> 

如果您的要求是不同的,那么你将不得不解释更清楚。

相关问题