如何将车辆品牌的 NCIC 代码值转换为 DCCIS 代码值?

2024-02-01

业务分析师告诉业务规则这已经改变了。现在他们希望我首先检查(计数)以查看是否有多个 NcicCode(在 VehicleMakeMapping 查找文档中)与 MncisCode(在输入文档中)匹配。如果 VehicleMakeMapping 查找文档中有多个 NcicCode,则仅使用第一个 NcicCode 作为输出。还要检查是否存在完全匹配(1 到 1),并在存在完全匹配的情况下使用 NcicCode。否则,如果没有与 MncisCode 匹配的 NcicCode,则不显示任何内容(不执行任何操作)。

我现在使用的新 XML 文件如下所示:

    <VehicleMakeMapping>
    <Mapping>
        <NcicCode>AUHE</NcicCode>
        <MncisCode>AUST</MncisCode>
        <Description>Austin-Healy</Description>
    </Mapping>
<Mapping>
    <NcicCode>JEEP</NcicCode>
    <MncisCode>JEEP</MncisCode>
    <Description>Jeep (for model years 1989 throughresent)</Description>
</Mapping>
<Mapping>
    <NcicCode>JEP</NcicCode>
    <MncisCode>JEEP</MncisCode>
    <Description>Jeep (for model years prior to 1970)</Description>
</Mapping>  
    <Mapping>
        <NcicCode>AUPR</NcicCode>
        <MncisCode>AUST</MncisCode>
        <Description>Austin Products, Inc.Subsidiary Austin Industries, Inc.</Description>
    </Mapping>
    <Mapping>
        <NcicCode>CHRS</NcicCode>
        <MncisCode>CHRY</MncisCode>
        <Description>Chrysler Boat Co.</Description>
    </Mapping>
    <Mapping>
        <NcicCode>CHRY</NcicCode>
        <MncisCode>CHRY</MncisCode>
        <Description>Chrysler</Description>
    </Mapping>
</VehicleMakeMapping>

这些显示例如 NCIC 代码 MRCU 必须转换为 DCCIS 代码 MERC 等。

Xml doc

 <Integration xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:tsg="http://tsgweb.com" xmlns:IXML="http://tsgweb.com" xmlns:CMCodeQueryHelper="urn:CMCodeQueryHelper" PackageID="IXML Case Notification Test" MessageID="67078058" xmlns="">
<Case InternalID="1616807927" ID="11747370" xmlns:user="http://tylertechnologies.com">
    <Charge ID="10547226" PartyID="16580814" CurrSentenceID="155092098" InternalChargeID="1616447618" InternalPartyID="1614482843" xmlns:reslib="urn:reslib">
        <ChargeOffenseDate>03/26/2014</ChargeOffenseDate>
        <Vehicle>
            <VehicleLicensePlateState>DC</VehicleLicensePlateState>
            <VehicleLicensePlateNumber>050KTU</VehicleLicensePlateNumber>
            <VehicleType Word="PASSVEH">Jeep (for model years prior to 1970)</VehicleType>
            <VehicleMake Word="JEEP">Austin-Healy</VehicleMake>
            <CommercialVehicleFlag>false</CommercialVehicleFlag>
            <HazardousVehicleFlag>false</HazardousVehicleFlag>
            <VehicleInactive>false</VehicleInactive>
        </Vehicle>
    </Charge>
</Case>

xslt

<xsl:template name="ChargeDetails">
    <ext:Vehicle>
        <nc:ItemStyleText>
            <xsl:value-of select="Vehicle/VehicleType"/>
        </nc:ItemStyleText>
        <nc:VehicleCMVIndicator>
            <xsl:value-of select="/Integration/Case/Charge/Vehicle/CommercialVehicleFlag"/>
        </nc:VehicleCMVIndicator>
        <j:VehicleMakeCode>
            <xsl:variable name="vVehicleMake">
        <xsl:value-of select="Vehicle/VehicleMake/@Word"/>                     </xsl:variable>
        <xsl:variable name="vVehicleMakeCode" select="document(concat($gEnvPath,'\Schemas\CourtXML\ConfigFiles\VehicleMakeMapping.xml'))/VehicleMakeMapping/Mapping[MncisCode=$vVehicleMake]/MncisCode"/>           <xsl:value-of select="$vVehicleMakeCode"/>              
        </j:VehicleMakeCode>
    </ext:Vehicle>

如果 VehicleMakeMapping 查找中存在多个 NcicCode 文档,然后只需使用第一个 NcicCode 作为输出。

为了简化问题,让我们:

XML

<root>
    <Vehicle>
        <VehicleMake Word="ABC">not important</VehicleMake>
    </Vehicle>
    <Vehicle>
        <VehicleMake Word="XYZ">not important</VehicleMake>
    </Vehicle>
</root>

VehicleMakeMapping.xml

<VehicleMakeMapping>
    <Mapping>
        <NcicCode>ABCA</NcicCode>
        <MncisCode>ABC</MncisCode>
        <Description>abc</Description>
    </Mapping>
    <Mapping>
        <NcicCode>ABCB</NcicCode>
        <MncisCode>ABC</MncisCode>
        <Description>abc abc</Description>
    </Mapping>
    <Mapping>
        <NcicCode>ABCC</NcicCode>
        <MncisCode>ABC</MncisCode>
        <Description>abc abc abc</Description>
    </Mapping>  
</VehicleMakeMapping>

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:param name="map-doc" select="'path/to/VehicleMakeMapping.xml'"/>

<xsl:key name="mapping" match="Mapping" use="MncisCode" />

<xsl:template match="/root">
    <xsl:copy>
        <xsl:apply-templates select="Vehicle"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="Vehicle">
    <Vehicle>
        <VehicleMakeCode>
            <xsl:value-of select="key('mapping', VehicleMake/@Word, document($map-doc))[1]/NcicCode"/>                     
        </VehicleMakeCode>
    </Vehicle>
</xsl:template>

</xsl:stylesheet>

Result

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <Vehicle>
      <VehicleMakeCode>ABCA</VehicleMakeCode>
   </Vehicle>
   <Vehicle>
      <VehicleMakeCode/>
   </Vehicle>
</root>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将车辆品牌的 NCIC 代码值转换为 DCCIS 代码值? 的相关文章

随机推荐

  • 通过网络共享 mdb 文件,对于许多计算机,无法编辑应用程序

    该公司正在使用旧的 Delphi 软件 该软件使用 mdb文件作为数据库 我无法改变应用程序的工作方式 我没有它的源代码 我们面临着很多问题 例如 锁问题 当用户添加条目时 它不会更新数据库 只会出现在本地 锁问题暂时解决了 目前的问题是只
  • 增强的 for 循环性能

    我和朋友因为这件事发生了争执 考虑下面的片段 for i 0 i
  • MySQL 中的枚举是否需要为 NOT NULL?

    可以说我有这个 ALTER TABLE asdf ADD field ENUM Y N DEFAULT N 是否需要在末尾添加 NOT NULL 因为它只能是 Y 和 N EDT 根据评论 如果我知道软件总是将其设置为 N 或 Y 并且被硬
  • HttpGet 属性的路由名称 asp.net core 2 中基本通用控制器类的名称

    我有一个通用控制器 它有几个派生的控制器类 但我不知道如何处理 HttpGet路线名称因为它需要常数 HttpGet id Name should not hard coded here for derived class public v
  • iPhone sdk 中提供不同类型的 CATransition 类型

    有谁知道可用 CATransition 的不同类型名称的链接 如同涟漪 迅疾 我想知道所有可用的名称 这些是可用的类型 kCATransitionFade kCATransitionMoveIn kCATransitionPush kCAT
  • 一个 HTML 文件中存在多个不同的页面

    有没有办法让多个不同的 HTML 页面包含在一个 HTML 文件中 例如 假设我有一个有两个页面的网站 Page 1 click here for page 2 and Page 2 click here for page 1 我是否可以创
  • InkCanvas 到位图

    我在将画布保存为 BMP 文件 或任何其他类型 时遇到问题 我试图像这样保存我的 InkCanvas int margin int canvas Margin Left int width int canvas ActualWidth ma
  • Swagger 漂亮的 HTML 代码在哪里?

    只有uglyHTML 页面可下载 HTML HTML2 和动态都丑陋 但该网站 例如 已编辑https app swaggerhub com apis user project version 以及许多其他 提供漂亮的 HTML 界面 如何
  • 使用 C 替换文件中的单词

    如何使用以下命令将文件中的单词替换为另一个单词C 例如 我有一个文件 其中包含 my friend name is sajid 我想替换这个词friend with 祖父 使得该文件更改为 my grandfather name is sa
  • R 中的 Excel YIELD 函数

    我试图弄清楚 Excel 中的 YIELD 函数如何运行其计算 以便我可以在 R 中创建一个使用类似输入的类似函数 以下是有关该函数的 Excel 文档 http office microsoft com en us excel help
  • 如何从 _layout SharePoint 页面使用网站母版页?

    我想在我的 SharePoint 12 hive template layouts TelephoneBookList test aspx 文件中使用母版页文件 如果有意义的话 就是网站的母版页文件 但是 每当我将 MasterPageFi
  • Mysql:每月记录数(包括零)

    我正在尝试计算表中的记录并按日期对它们进行分组 我当前的查询如下所示 SELECT count MONTH time as month YEAR time as year FROM myTable GROUP BY month year O
  • 使用 Swing 和 Graphics2D 在 Java 中旋转轮子?

    我正在研究一个可以绕中心旋转轮子的课程 轮子是使用graphics2d创建的 但我无法确切地弄清楚如何让轮子绕中心旋转 目前 轮子旋转 但不完全围绕原点旋转 我的最终目标是创建一个具有多种颜色的轮子以及围绕它的程序 但我主要关心的是让旋转轮
  • 我用的plyr对吗?我似乎使用了太多内存

    我有以下有点大的数据集 gt dim dset 1 422105 25 gt class dset 1 data frame gt 在不执行任何操作的情况下 R 进程似乎占用了大约 1GB 的 RAM 我正在尝试运行以下代码 dset lt
  • Jenkins job DSL 插件 - 隐藏参数

    我正在使用詹金斯隐藏参数插件 https wiki jenkins ci org display JENKINS Hidden Parameter Plugin但我找不到像使用其他参数那样在 DSL 中编写它的语法 例如 https jen
  • ImportError:使用 Jupyter Notebook 时没有名为 numpy 的模块 - Google Cloud Dataproc

    在 Google Dataproc 上启动 Jupyter Notebook 时 导入模块失败 我尝试使用不同的命令安装模块 一些例子 import os os sytem sudo apt get install python numpy
  • 使用 Python、文件

    我有一些需要读取的数据文件 我知道我应该使用 Dataset 但是有没有一种方法可以下载这些文件 而无需手动下载 而是通过其 URL 来下载 在我的例子中会是什么样子 我正在使用 conda python 和 netCDF4 无论我做什么
  • 如何在 Yii2 中进行多次 UPSERT?

    我正在使用 Yii2 高级模板 我必须在 MySql 数据库中插入 1000 到 2000 条记录 是否可以制作多个UPSERT 查询 in Yii2 请帮助我提供您的建议 答案 谢谢 从版本 2 0 14 开始 您可以使用 upsert
  • pandas:添加具有其他两列中任意一列的值的新列

    pd DataFrame A None 2 None None 3 4 B 1 2 3 4 5 6 A B 0 NaN 1 1 2 2 2 NaN 3 3 NaN 4 4 3 5 5 4 6 如何添加列C这将从列中获取值A如果不是 NaN
  • 如何将车辆品牌的 NCIC 代码值转换为 DCCIS 代码值?

    业务分析师告诉业务规则这已经改变了 现在他们希望我首先检查 计数 以查看是否有多个 NcicCode 在 VehicleMakeMapping 查找文档中 与 MncisCode 在输入文档中 匹配 如果 VehicleMakeMappin