使用XSLT为XML中的类似节点创建通用模板

时间:2016-05-30 09:36:23

标签: xml xslt xslt-1.0

如果我有这样的XML:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <body1>
    <text1>this is a text</text1>
    <number1>1234,7</number1>
  </body1>
  <body2>
    <text2>this is a text</text2>
    <number2>1234,7</number2>
  </body2>
  <..>
</root>

如何为每个<body> / <text><number>标签创建通用模板,使其成为通用模板

2 个答案:

答案 0 :(得分:1)

不确定“泛型”在这种情况下的含义 - 也许是:

<xsl:template match="*[starts-with(name(), 'body')]">

答案 1 :(得分:1)

  

如何为每个json_decode($res)创建通用模板   <body>/<text>标记使其成为通用

有许多方法可供使用,取决于(要处理的XML文档的所有可能实例),您只向我们展示了一个:

<number>

<xsl:template 
 match="*[starts-with(name(), 'body') and not(string-length(name() > 6))]
            /*[starts-with(name(), 'text') and not(string-length(name() > 6))]">

或者,如果您只有显示的XML文档,则可以使用

<xsl:template 
 match="*[starts-with(name(), 'body') and not(string-length(name() > 6))]
            /*[starts-with(name(), 'number') and not(string-length(name() > 8))]">

<xsl:template 
 match="*[starts-with(name(), 'text') and not(string-length(name() > 6))]">

甚至

<xsl:template 
 match="*[starts-with(name(), 'number') and not(string-length(name() > 8))]">