Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 使用XSLT的特定节点值的唯一记录计数_Xml_Xslt_Tibco - Fatal编程技术网

Xml 使用XSLT的特定节点值的唯一记录计数

Xml 使用XSLT的特定节点值的唯一记录计数,xml,xslt,tibco,Xml,Xslt,Tibco,当特定节点值出错时,如何计算唯一值。下面是xml源代码。有不同的数据集,如销售、销售和库存,但 无论数据集类型如何,我都希望记录类型=错误具有唯一的记录计数 <SellOutErrorRecord> <RECORD_TYPE>WARNING</RECORD_TYPE> <ERROR_DESC>record 1:location id is invalid</ERROR_DESC> <RECORD_NO>

当特定节点值出错时,如何计算唯一值。下面是xml源代码。有不同的数据集,如销售、销售和库存,但 无论数据集类型如何,我都希望记录类型=错误具有唯一的记录计数

<SellOutErrorRecord>
    <RECORD_TYPE>WARNING</RECORD_TYPE>
    <ERROR_DESC>record 1:location id is invalid</ERROR_DESC>
    <RECORD_NO>1</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>336549R-001</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>LA</PRODUCT_LINE>
</SellOutErrorRecord>
<SalesInErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 1:location id is invalid</ERROR_DESC>
    <RECORD_NO>1</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>336549R-001</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>LA</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>C</PRODUCT_LINE_TYPE>
</SalesInErrorRecord>
<SellOutErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 2:SO:invoiced net amount is invalid</ERROR_DESC>
    <RECORD_NO>2</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>3X-KN73C-DB</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>HA</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</SellOutErrorRecord>
<SellOutErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 3:SO:transaction currency is invalid</ERROR_DESC>
    <RECORD_NO>3</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>339112-B25</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>J3</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</SellOutErrorRecord>
<SalesInErrorRecord>
    <RECORD_TYPE>WARNING</RECORD_TYPE>
    <ERROR_DESC>record 3:SI:buy quantity is zero</ERROR_DESC>
    <RECORD_NO>3</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>339112-B25</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>J3</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</SalesInErrorRecord>
<SalesInErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 3:SI:transaction document id is invalid</ERROR_DESC>
    <RECORD_NO>3</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>339112-B25</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>J3</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</SalesInErrorRecord>
<SellOutErrorRecord>
    <RECORD_TYPE>WARNING</RECORD_TYPE>
    <ERROR_DESC>record 4:SO:invoiced net amount is invalid</ERROR_DESC>
    <RECORD_NO>4</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>445860-B21</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>MV</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>C</PRODUCT_LINE_TYPE>
</SellOutErrorRecord>
<SalesInErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 5:SI:transaction currency is null or invalid</ERROR_DESC>
    <RECORD_NO>5</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>339112-B25</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>J3</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</SalesInErrorRecord>
<InventoryErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 6:product id is invalid</ERROR_DESC>
    <RECORD_NO>6</RECORD_NO>
    <LOCATION_NAME>XYZ XYZ</LOCATION_NAME>
    <PRODUCT_NUMBER>331184-B21</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0S1</PRODUCT_OPTION>
    <PRODUCT_LINE>R8</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</InventoryErrorRecord>
<SellOutErrorRecord>
    <RECORD_TYPE>ERROR</RECORD_TYPE>
    <ERROR_DESC>record 6:SO:invoiced net amount is invalid</ERROR_DESC>
    <RECORD_NO>6</RECORD_NO>
    <LOCATION_NAME>XYZ el</LOCATION_NAME>
    <PRODUCT_NUMBER>339112-B25</PRODUCT_NUMBER>
    <PRODUCT_OPTION>0D1</PRODUCT_OPTION>
    <PRODUCT_LINE>J3</PRODUCT_LINE>
    <PRODUCT_LINE_TYPE>E</PRODUCT_LINE_TYPE>
</SellOutErrorRecord>

警告
记录1:位置id无效
1.
XYZ el
336549R-001
0D1
洛杉矶
错误
记录1:位置id无效
1.
XYZ el
336549R-001
0D1
洛杉矶
C
错误
记录2:SO:发票净金额无效
2.
XYZ el
3X-KN73C-DB
0D1
哈
E
错误
记录3:SO:交易货币无效
3.
XYZ el
339112-B25
0D1
J3
E
警告
记录3:SI:购买数量为零
3.
XYZ el
339112-B25
0D1
J3
E
错误
记录3:SI:交易凭证id无效
3.
XYZ el
339112-B25
0D1
J3
E
警告
记录4:SO:发票净金额无效
4.
XYZ el
445860-B21
0D1
MV
C
错误
记录5:SI:交易货币为空或无效
5.
XYZ el
339112-B25
0D1
J3
E
错误
记录6:产品id无效
6.
XYZ XYZ
331184-B21
0S1
R8
E
错误
记录6:SO:发票净金额无效
6.
XYZ el
339112-B25
0D1
J3
E
输出必须为记录计数=5。
感谢您的帮助…

在XSLT1.0中,区分是相当重要的。我假设根节点是
xml
,使记录唯一的是
RECORD\u NO

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="no"/>

    <xsl:template match="/xml">
        record_count=<xsl:value-of select="count(*[RECORD_TYPE='ERROR' and not(following::*[RECORD_TYPE='ERROR']/RECORD_NO/text() = RECORD_NO/text())])" />
    </xsl:template>
</xsl:stylesheet>

记录计数=

您知道是否可以使用xslt 2.0吗?v1.0没有
不同的值