如何使用xslt 1.0进行模板不匹配

库玛

我有一个要求,我要根据根元素标签处理消息,为此,我根据根标签元素创建了3种不同的模板匹配。我想知道如果客户端发送的其他消息与根标记元素不匹配,该如何处理消息。

输入:

<?xml version="1.0"?>
<process1 xmlns="http://www.openapplications.org/oagis/10" systemEnvironmentCode="Production" languageCode="en-US">
    <Appdata>
        <Sender>
        </Sender>
        <Receiver>
        </Receiver>
        <CreationDateTime/>
    </Appdata>
</process1>

第2条消息:除root标签为之外,其他所有内容都相同process2process3

代码:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/*[local-name()='proces1']">
        <operation>dosomthing</operation>
    </xsl:template>
    <xsl:template match="/*[local-name()='process2']">
        <operation>dosomthing2</operation>
    </xsl:template>
    <xsl:template match="/*[local-name()='process2']">
        <operation>blah blah</operation>
    </xsl:template>
</xsl:stylesheet>

我的问题是,如果消息与3个模板process1,process2,process3不匹配,我想处理消息

任何人都可以请教如何实现这一目标吗?

托玛拉克

首先,请不要使用local-name()声明和使用适当的名称空间很容易做到。

其次,只需创建一个模板,该模板不太特定,可以使用您没有想到的名称来捕获任何文档元素(请参见下面的第四个模板):

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fo="http://www.w3.org/1999/XSL/Format"
    xmlns:oagis="http://www.openapplications.org/oagis/10"
>
    <xsl:template match="/oagis:process1">
        <operation>dosomething1</operation>
    </xsl:template>
    <xsl:template match="/oagis:process2">
        <operation>dosomething2</operation>
    </xsl:template>
    <xsl:template match="/oagis:process3">
        <operation>dosomething3</operation>
    </xsl:template>
    <xsl:template match="/*" priority="0">
        <!-- any document element not mentioned above -->
    </xsl:template>
</xsl:stylesheet>

注意:如果前三个模板都执行相同的操作,则可以将它们折叠为一个。

<xsl:template match="/oagis:process1|/oagis:process2|/oagis:process3">
    <operation>dosomething</operation>
</xsl:template>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XSLT 1进行XML转换

来自分类Dev

如何使用模板对0到1范围内的数字进行归一化?

来自分类Dev

XSLT-如何使用模板匹配有条件地对元素进行分组

来自分类Dev

如何创建模板以基于XSLT参数进行匹配

来自分类Dev

如何在 xslt 中进行递归模板匹配

来自分类Dev

模板匹配 XSLT1 根据日期跳过子元素

来自分类Dev

如何使用XSLT匹配元素并输出HTML?

来自分类Dev

如何使用xslt对xml进行排序

来自分类Dev

如何使用XSLT进行不等式

来自分类Dev

如何使用XSLT升序对XML进行排序

来自分类Dev

如何使用 xslt 对 xml 标签进行排序

来自分类Dev

如何使用 XSLT 对日期进行分区

来自分类Dev

如何防止Mongoose Transactions中出现“给定的1号交易与任何正在进行的交易不匹配”?

来自分类Dev

如何使用XSLT在日期中增加1天

来自分类Dev

如何使用XSLT-1从格式文本中分离标签?

来自分类Dev

如何使用XSLT转换/翻译/替换'[AZ]','[1-26]'

来自分类Dev

如何使用XSLT在日期中增加1天

来自分类Dev

使用Open CV C ++进行模板匹配

来自分类Dev

在Python中使用OpenCV进行模板匹配

来自分类Dev

使用opencv进行模板匹配成功

来自分类Dev

如何自动调整使用opencv进行模板匹配的阈值?

来自分类Dev

XML / XSLT 1.0 - 如何对文本字符串使用 XSL 模板匹配?

来自分类Dev

如何使用打字稿与不匹配的给定值进行比较?

来自分类Dev

如何解决“ [xslt]找不到匹配的1参数函数”的异常?

来自分类Dev

如何使用xslt 1.0删除特定匹配的元素

来自分类Dev

使用XSLT1,如何简单地分配以1开头的增量值?

来自分类Dev

XSLT。如何对1个元素进行2次更改?订购和重命名

来自分类Dev

如何在XSLT中使用position()进行循环

来自分类Dev

如何取消对HTML的转义,然后使用XSLT对其进行转换?

Related 相关文章

  1. 1

    使用XSLT 1进行XML转换

  2. 2

    如何使用模板对0到1范围内的数字进行归一化?

  3. 3

    XSLT-如何使用模板匹配有条件地对元素进行分组

  4. 4

    如何创建模板以基于XSLT参数进行匹配

  5. 5

    如何在 xslt 中进行递归模板匹配

  6. 6

    模板匹配 XSLT1 根据日期跳过子元素

  7. 7

    如何使用XSLT匹配元素并输出HTML?

  8. 8

    如何使用xslt对xml进行排序

  9. 9

    如何使用XSLT进行不等式

  10. 10

    如何使用XSLT升序对XML进行排序

  11. 11

    如何使用 xslt 对 xml 标签进行排序

  12. 12

    如何使用 XSLT 对日期进行分区

  13. 13

    如何防止Mongoose Transactions中出现“给定的1号交易与任何正在进行的交易不匹配”?

  14. 14

    如何使用XSLT在日期中增加1天

  15. 15

    如何使用XSLT-1从格式文本中分离标签?

  16. 16

    如何使用XSLT转换/翻译/替换'[AZ]','[1-26]'

  17. 17

    如何使用XSLT在日期中增加1天

  18. 18

    使用Open CV C ++进行模板匹配

  19. 19

    在Python中使用OpenCV进行模板匹配

  20. 20

    使用opencv进行模板匹配成功

  21. 21

    如何自动调整使用opencv进行模板匹配的阈值?

  22. 22

    XML / XSLT 1.0 - 如何对文本字符串使用 XSL 模板匹配?

  23. 23

    如何使用打字稿与不匹配的给定值进行比较?

  24. 24

    如何解决“ [xslt]找不到匹配的1参数函数”的异常?

  25. 25

    如何使用xslt 1.0删除特定匹配的元素

  26. 26

    使用XSLT1,如何简单地分配以1开头的增量值?

  27. 27

    XSLT。如何对1个元素进行2次更改?订购和重命名

  28. 28

    如何在XSLT中使用position()进行循环

  29. 29

    如何取消对HTML的转义,然后使用XSLT对其进行转换?

热门标签

归档