Xml xslt使用子字符串统计不同的上下文

Xml xslt使用子字符串统计不同的上下文,xml,xslt-1.0,Xml,Xslt 1.0,我对XSLT有一个非常复杂的需求。我需要计算一个值等于其值的子字符串的字段。我能数一数,但问题是上下文。请参见下面的示例: <root> <Manager>TC4:12345</Manager> <Staff> <employee>TC3:22222</employee> <employee

我对XSLT有一个非常复杂的需求。我需要计算一个值等于其值的子字符串的字段。我能数一数,但问题是上下文。请参见下面的示例:

         <root>
            <Manager>TC4:12345</Manager>
            <Staff>
                <employee>TC3:22222</employee>
                <employee>TC3:11111</employee>
                <employee>TC3:33333</employee>
            </Staff>
            </root>
         <root>
            <Manager>TC4:67890</Manager>
            <Staff>
                <employee>TC3:44444</employee>
                <employee>TC3:55555</employee>
                <employee>TC3:66666</employee>
            </Staff>
            </root>

TC4:12345
TC3:22222
TC3:11111
TC3:33333
TC4:67890
TC3:44444
TC3:55555
TC3:66666
输出应如下所示:

            <Manager>
            <Seniors>
            <Count>3</Count>
            </Seniors>
            </Manager>
            <Manager>
            <Seniors>
            <Count>3</Count>
            </Seniors>
            </Manager>

3.
3.
第一位经理统计了具有TC3角色的员工人数,第二位经理也统计了具有TC3角色的员工人数。我试着这样做,但我最终在第一个上下文中有6个,在第二个上下文中也有6个,而不是3和3

这是我的密码

<xsl:value-of select="count(//root/Staff/employee[substring(.,1,3) = 'TC3'])">

写一个模板
match=“root”
然后在里面你可以使用
写一个模板
match=“root”
,然后在里面你可以使用

(假设你所有的xml都被包装在一个body标签中):


以下是我使用的来源:

<?xml version="1.0" encoding="UTF-8"?>
<body>
    <root>
        <Manager>TC4:12345</Manager>
        <Staff>
            <employee>TC3:22222</employee>
            <employee>TC3:11111</employee>
            <employee>TC3:33333</employee>
        </Staff>
        </root>
     <root>
        <Manager>TC4:67890</Manager>
        <Staff>
            <employee>TC3:44444</employee>
            <employee>TC3:55555</employee>
            <employee>TC3:66666</employee>
        </Staff>
   </root>
</body>

TC4:12345
TC3:22222
TC3:11111
TC3:33333
TC4:67890
TC3:44444
TC3:55555
TC3:66666
以下是输出:

<Manager>
  <Seniors>
    <Count>3</Count>
  </Seniors>
</Manager><Manager>
  <Seniors>
    <Count>3</Count>
  </Seniors>
</Manager>

3.
3.
在这里(假设所有xml都包装在一个body标记中):


以下是我使用的来源:

<?xml version="1.0" encoding="UTF-8"?>
<body>
    <root>
        <Manager>TC4:12345</Manager>
        <Staff>
            <employee>TC3:22222</employee>
            <employee>TC3:11111</employee>
            <employee>TC3:33333</employee>
        </Staff>
        </root>
     <root>
        <Manager>TC4:67890</Manager>
        <Staff>
            <employee>TC3:44444</employee>
            <employee>TC3:55555</employee>
            <employee>TC3:66666</employee>
        </Staff>
   </root>
</body>

TC4:12345
TC3:22222
TC3:11111
TC3:33333
TC4:67890
TC3:44444
TC3:55555
TC3:66666
以下是输出:

<Manager>
  <Seniors>
    <Count>3</Count>
  </Seniors>
</Manager><Manager>
  <Seniors>
    <Count>3</Count>
  </Seniors>
</Manager>

3.
3.

它在binarymax中工作!!!谢谢一个简单的圆点/工作人员能做的事情真是太神奇了!!!它工作了binarymax!!!谢谢一个简单的圆点/工作人员能做的事情真是太神奇了!!!