我的XML是 -
<app>
<data>
<lang>en</lang>
</data>
</app>
我想检查一下是否存在'lang'标签/元素。 我使用下面的代码来检查它,但我认为它不起作用。 -
<xsl:if test="app/data/lang">
<xsl:call-template name="xyz" /></xsl:if>
我无法理解我在这里做错了什么。我提到了stackoverflow的this页面。 请建议任何其他方式来解决这个问题。 提前谢谢!
回答 -
经过多次更改,我得到了一个解决方案。我做了一个小改动来解决这个问题。我在'app'之前添加了'/'。
<xsl:if test="/app/data/lang">
<xsl:call-template name="xyz" />
</xsl:if>
感谢大家分享他们的解决方案。
答案 0 :(得分:0)
您可以使用XSLT检查。选择和何时做好 以下是示例代码
<xsl:choose>
<xsl:when test="app/data/lang">
*write what ever you want*
</xsl:when>
</xsl:choose>
答案 1 :(得分:0)
E.g。在匹配app
的模板中,您可以使用<xsl:if test="data/lang">
。
提到的标签必须存在,尽管它可能是空的。
您的脚本失败的可疑原因是当前对象可能
是app/data/lang
路径找不到任何东西。
有关工作示例,请参阅http://xsltransform.net/bEJaog9
要获得“缺席”案例,请更改,例如源lang
标记的名称。
答案 2 :(得分:0)
根据我对此答案的理解,请考虑这可能是您的XML
<Data>
<Record>
<AddInfo>
</AddInfo>
</Record>
</Data>
你需要根据你必须调用的模板来检查AddInfo标签,那么这将是XSL需要形成的
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="Data/Record">
<xsl:choose>
<xsl:when test="AddInfo">Present</xsl:when>
<xsl:otherwise>Not Present</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
根据现在或不存在,您提供您的条件。与call-template Link here
相关的更多内容答案 3 :(得分:0)
我做了一个小改动来解决这个问题。我添加了&#39; /&#39;之前&#39; app&#39;。
<xsl:if test="/app/data/lang">
<xsl:call-template name="xyz" />
</xsl:if>