如何使用XSLT在XML中散列字段
发布时间:2020-12-15 23:59:45 所属栏目:百科 来源:网络整理
导读:有一个 XML,我正在使用XSLT构建另一个XML.我希望某些字段具有哈希值而不是实际值.意思我应该知道数据何时被更改,但由于某些安全原因我不想知道数据. xsl:template name="sensitiveDataTemplate" xsl:param name="sensitiveData"/xsl:param xsl:if test="$sen
有一个
XML,我正在使用XSLT构建另一个XML.我希望某些字段具有哈希值而不是实际值.意思我应该知道数据何时被更改,但由于某些安全原因我不想知道数据.
<xsl:template name="sensitiveDataTemplate"> <xsl:param name="sensitiveData"></xsl:param> <xsl:if test="$sensitiveData!=''"> <xsl:value-of select="'XXXXXX'"></xsl:value-of> </xsl:if> </xsl:template> 现在我只是用XXXXX替换数据,但我需要一些哈希值.
要生成哈希值,您可以注册自定义函数.
有关如何在xlst处理器中注册自定义php函数的信息,请参阅official documentation. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl"> <xsl:template name="sensitiveDataTemplate"> <xsl:param name="sensitiveData"></xsl:param> <xsl:if test="$sensitiveData!=''"> <xsl:value-of select="'php:some_hash_fun()'"></xsl:value-of> </xsl:if> </xsl:template> </xsl:stylesheet> function some_hash_fun( ) { return "XXXX"; // hash value } $xmldoc = DOMDocument::loadXML($xml); $xsldoc = DOMDocument::loadXML($xsl); $proc = new XSLTProcessor(); $proc->registerPHPFunctions(); // can be either a string (a function name) or an array of functions. $proc->importStyleSheet($xsldoc); echo $proc->transformToXML($xmldoc); 希望能帮助到你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |