Xml XSLT翻译问题匹配子字符串文本
我正在寻找有关我试图创建的XSLT的一些帮助-我试图解决的问题是,如果attributeId包含子字符串“fault_code”,我希望获得AttributeAssignment的值: 输入:Xml XSLT翻译问题匹配子字符串文本,xml,xslt,Xml,Xslt,我正在寻找有关我试图创建的XSLT的一些帮助-我试图解决的问题是,如果attributeId包含子字符串“fault_code”,我希望获得AttributeAssignment的值: 输入: <AttributeAssignment AttributeId="att_obl_authorization_rule_fault_code" DataType="string" Issuer="" Category="urn:oasis:names:tc:xacml:3.0:attribute
<AttributeAssignment AttributeId="att_obl_authorization_rule_fault_code" DataType="string" Issuer="" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment">ERROR</AttributeAssignment>
错误
我试过:
<xsl:template match="AttributeAssignment">
<xsl:if test="contains=('{@AttributeId}', 'fault_code')" >
<faultcode> soapenv:<xsl:value-of select='.'/>
</faultcode>
</xsl:if>
</xsl:template>
soapenv:
此:
<xsl:if test="contains=('{@AttributeId}', 'fault_code')" >
<xsl:if test="contains(@AttributeId, 'fault_code')" >
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment">
<xsl:if test="contains(@AttributeId, 'fault_code')">
<faultcode>soapenv:<xsl:value-of select="."/></faultcode>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment[contains(@AttributeId, 'fault_code')]">
<faultcode>
<xsl:value-of select="concat('soapenv:', .)"/>
</faultcode>
</xsl:template>
</xsl:stylesheet>
<faultcode>soapenv:ERROR</faultcode>
无效。改为使用此选项:
<xsl:if test="contains=('{@AttributeId}', 'fault_code')" >
<xsl:if test="contains(@AttributeId, 'fault_code')" >
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment">
<xsl:if test="contains(@AttributeId, 'fault_code')">
<faultcode>soapenv:<xsl:value-of select="."/></faultcode>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment[contains(@AttributeId, 'fault_code')]">
<faultcode>
<xsl:value-of select="concat('soapenv:', .)"/>
</faultcode>
</xsl:template>
</xsl:stylesheet>
<faultcode>soapenv:ERROR</faultcode>
进行测试,当此XSLT:
<xsl:if test="contains=('{@AttributeId}', 'fault_code')" >
<xsl:if test="contains(@AttributeId, 'fault_code')" >
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment">
<xsl:if test="contains(@AttributeId, 'fault_code')">
<faultcode>soapenv:<xsl:value-of select="."/></faultcode>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment[contains(@AttributeId, 'fault_code')]">
<faultcode>
<xsl:value-of select="concat('soapenv:', .)"/>
</faultcode>
</xsl:template>
</xsl:stylesheet>
<faultcode>soapenv:ERROR</faultcode>
soapenv:
…或者更简单、更可扩展的XSLT:
<xsl:if test="contains=('{@AttributeId}', 'fault_code')" >
<xsl:if test="contains(@AttributeId, 'fault_code')" >
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment">
<xsl:if test="contains(@AttributeId, 'fault_code')">
<faultcode>soapenv:<xsl:value-of select="."/></faultcode>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment[contains(@AttributeId, 'fault_code')]">
<faultcode>
<xsl:value-of select="concat('soapenv:', .)"/>
</faultcode>
</xsl:template>
</xsl:stylesheet>
<faultcode>soapenv:ERROR</faultcode>
…应用于提供的XML:
<AttributeAssignment AttributeId="att_obl_authorization_rule_fault_code" DataType="string" Issuer="" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment">ERROR</AttributeAssignment>
错误
…生成所需结果:
<xsl:if test="contains=('{@AttributeId}', 'fault_code')" >
<xsl:if test="contains(@AttributeId, 'fault_code')" >
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment">
<xsl:if test="contains(@AttributeId, 'fault_code')">
<faultcode>soapenv:<xsl:value-of select="."/></faultcode>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="AttributeAssignment[contains(@AttributeId, 'fault_code')]">
<faultcode>
<xsl:value-of select="concat('soapenv:', .)"/>
</faultcode>
</xsl:template>
</xsl:stylesheet>
<faultcode>soapenv:ERROR</faultcode>
soapenv:错误