Xslt 检查取决于XSL上的属性
需要你们的帮助伙计们我有一个远程xml文件,上面有客户的详细信息Xslt 检查取决于XSL上的属性,xslt,xslt-2.0,Xslt,Xslt 2.0,需要你们的帮助伙计们我有一个远程xml文件,上面有客户的详细信息 <Clients> <Client Name = "John"> <id>****</id> <id>****</id> <id>****</id> </Client> <Client Name = "David"> <
<Clients>
<Client Name = "John">
<id>****</id>
<id>****</id>
<id>****</id>
</Client>
<Client Name = "David">
<id>****</id>
<id>****</id>
<id>****</id>
</Client>
</Clients>
****
****
****
****
****
****
客户机将发送他的名字和他的id。我将通过两个步骤对照上面的xml检查这些参数
第一步是搜索与接收到的名称匹配的客户端名称
第二步是使用该客户端的id列表验证接收到的id
如果找到以上所有内容,请求将被通过,否则请求将被拒绝有什么帮助吗?请考虑以下示例: XML
<Clients>
<Client Name = "John">
<id>123</id>
<id>456</id>
<id>789</id>
</Client>
<Client Name = "David">
<id>234</id>
<id>567</id>
<id>890</id>
</Client>
</Clients>
123
456
789
234
567
890
XSLT
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="client-name"/>
<xsl:param name="id"/>
<xsl:key name="client" match="Client" use="@Name" />
<xsl:template match="/">
<result>
<xsl:value-of select="key('client', $client-name)/id=$id"/>
</result>
</xsl:template>
</xsl:stylesheet>
使用参数调用此转换时:
<xsl:param name="client-name">David</xsl:param>
<xsl:param name="id">567</xsl:param>
<xsl:param name="client-name">Paul</xsl:param>
<xsl:param name="id">567</xsl:param>
David
567
结果将是:
<?xml version="1.0" encoding="UTF-8"?>
<result>true</result>
<?xml version="1.0" encoding="UTF-8"?>
<result>false</result>
真的
带参数:
<xsl:param name="client-name">David</xsl:param>
<xsl:param name="id">567</xsl:param>
<xsl:param name="client-name">Paul</xsl:param>
<xsl:param name="id">567</xsl:param>
保罗
567
或:
David
5678
结果将是:
<?xml version="1.0" encoding="UTF-8"?>
<result>true</result>
<?xml version="1.0" encoding="UTF-8"?>
<result>false</result>
假的
尝试一下:
<!-- variables to store "name" and "id" value -->
<xsl:variable name="name" select="'John'"/>
<xsl:variable name="id" select="'222'"/>
<!-- construct to match against config data -->
<xsl:choose>
<xsl:when test="(//Client[@Name=$name][id=$id])">
<xsl:text>Access Granted...</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Access Denied!!!</xsl:text>
</xsl:otherwise>
</xsl:choose>
已授予访问权限。。。
访问被拒绝!!!
我尝试了它,但没有成功,xml是远程文件,我必须打开它并在其上循环,检查是否有任何参数与请求参数匹配,否则将始终打印,否则将在测试中调用远程配置文件作为文档('remoteLookUp.xml')//Client[@Name=$Name][id=$id]