如何用字符串替换缩写?

2024-01-02

我正在创建一个 XSL 文件,该文件将从 XML 文件中提取有关在我所在区域被拖走的汽车的信息,并按汽车被拖走的日期按升序对其进行排序。我需要在转换后的文件中显示拖车日期、车牌和汽车颜色。我的问题是每辆车的颜色都有缩写,我想要颜色的全名而不是三个字母的缩写。

这是我的 XML 文件:

<?xml version="1.0"?>
<response>
    <tow>
        <tow_date>2021-10-10</tow_date>
        <make>CHRI</make>
        <style>4D</style>
        <color>WHI</color>
        <plate>549XIB</plate>
        <state>AZ</state>
        <towed_to_address>10300 S. Doty</towed_to_address>
        <tow_facility_phone>(773) 568-8495</tow_facility_phone>
        <inventory_number>2922125</inventory_number>
    </tow>
    <tow>
        <tow_date>2021-10-24</tow_date>
        <make>TOYT</make>
        <style>4T</style>
        <color>GRY</color>
        <plate>LDNE06</plate>
        <state>FL</state>
        <towed_to_address>701 N. Sacramento</towed_to_address>
        <tow_facility_phone>(773) 265-7605</tow_facility_phone>
        <inventory_number>7015429</inventory_number>
    </tow>
    <tow>
        <tow_date>2021-11-06</tow_date>
        <make>JEEP</make>
        <style>LL</style>
        <color>BLK</color>
        <plate>HDU4518</plate>
        <state>NY</state>
        <towed_to_address>701 N. Sacramento</towed_to_address>
        <tow_facility_phone>(773) 265-7605</tow_facility_phone>
        <inventory_number>7016130</inventory_number>
    </tow>
</response>

这是我的 XSL 文件:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />

    <xsl:template match="/">
        <xsl:element name="summary">
            <state name="Arizona">
                <xsl:apply-templates select="response/tow[state = 'AZ']">
                    <xsl:sort select="tow_date" order="ascending" />
                </xsl:apply-templates>
            </state>
            <state name="Florida">
                <xsl:apply-templates select="response/tow[state = 'FL']">
                    <xsl:sort select="tow_date" order="ascending" />
                </xsl:apply-templates>
            </state>
            <state name="New York">
                <xsl:apply-templates select="response/tow[state = 'NY']">
                    <xsl:sort select="tow_date" order="ascending" />
                </xsl:apply-templates>
            </state>
        </xsl:element>
    </xsl:template>

    <xsl:template match="tow" >
        <vehicle date="{tow_date}" plate="{plate}" color="{color}" />
    </xsl:template>

</xsl:stylesheet>

我转换后的文档如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<summary>
    <state name="Arizona">
        <vehicle date="2021-10-10" plate="549XIB" color="WHI"/>
    </state>
    <state name="Florida">
        <vehicle date="2021-10-24" plate="LDNE06" color="GRY"/>
    </state>
    <state name="New York">
        <vehicle date="2021-11-06" plate="HDU4518" color="BLK"/>
    </state>
</summary>

在我转换后的文件中,我希望 WHI、GRY 和 BLK 的值变为 WHITE、GRAY 和 BLACK。我怎样才能做到这一点?


请尝试以下 XSLT。

颜色的选择取决于用途<xsl:choose>分支元素。

XSLT

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

    <xsl:template match="/">
        <xsl:element name="summary">
            <state name="Arizona">
                <xsl:apply-templates select="response/tow[state = 'AZ']">
                    <xsl:sort select="tow_date" order="ascending"/>
                </xsl:apply-templates>
            </state>
            <state name="Florida">
                <xsl:apply-templates select="response/tow[state = 'FL']">
                    <xsl:sort select="tow_date" order="ascending"/>
                </xsl:apply-templates>
            </state>
            <state name="New York">
                <xsl:apply-templates select="response/tow[state = 'NY']">
                    <xsl:sort select="tow_date" order="ascending"/>
                </xsl:apply-templates>
            </state>
        </xsl:element>
    </xsl:template>

    <xsl:template match="tow">
        <vehicle date="{tow_date}" plate="{plate}">
            <xsl:attribute name="color">
                <xsl:choose>
                    <xsl:when test="color='WHI'">WHITE</xsl:when>
                    <xsl:when test="color='GRY'">GRAY</xsl:when>
                    <xsl:when test="color='BLK'">BLACK</xsl:when>
                    <xsl:otherwise>... some default color ....</xsl:otherwise>
                </xsl:choose>
            </xsl:attribute>
        </vehicle>
    </xsl:template>
</xsl:stylesheet>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用字符串替换缩写? 的相关文章

随机推荐

  • Next Js - Firebase 部署问题

    我正在构建一个新的 Next Js 应用程序 它是使应用程序部署在vercel https vercel com 通过链接 gitlab Next js 项目 对于同一个项目 我需要将其部署在 firebase 中 我尝试过的事情 gt 制
  • -webkit- 文本区域在垂直滚动条上丢失顶部和底部填充

    我有一个具有固定宽度和高度并且没有调整大小的文本区域元素 当出现垂直滚动条时 元素的填充 顶部和底部 将被忽略 这是一个 plnkr 演示 http plnkr co edit jOeYXqkOZk3FCT24BRrk p preview
  • 为 fabpot/goutte 客户端设置 CURL 参数

    我正在使用 goutte fabpot goutte 开发一个网络爬虫 当我尝试连接到 https 站点时 它会抛出错误 因为该站点正在使用自签名证书 我正在尝试找到设置curl参数的方法来忽略ssl证书是自签名的事实 按照中的说明进行操作
  • 找出php中两个字符串之间的匹配百分比?

    任何人都可以建议我一个更好的方法 或最优选的方法 来使用模糊逻辑查找两个字符串之间的匹配百分比 即这两个字符串 例如名称 在百分比方面的相关程度 谁能帮我写代码吗 我真的想知道从哪里开始 str1 Hello str2 Hello Worl
  • Mongoose 连接/模型:需要始终运行在开放状态吗?

    我正在使用 Mongoose 3 连接数据库最明显的方法是 conn mongoose createConnection conn on open 问题是 我需要在 open 回调中定义所有模型吗 如果是这样 我将不得不创建一个initMo
  • 缓存 git-tf 的 TFS 登录凭据

    我在工作中使用 git 和 git tf 但每次使用 git tf 执行任何命令时 我都必须输入登录凭据 有没有办法缓存 git tf 的 TFS 登录凭据 这样我就不必每次都输入它们 如果您使用 Kerberos 并与 TFS 服务器所在
  • 同时垂直滚动两个表格

    我有两个必须一起滚动的表 vscroll on scroll function e divTable1 scrollTop e scrollTop divTable2 scrollTop e scrollTop 不过有一点滞后问题 Tabl
  • 将 LOAD DATA INFILE 与阿拉伯语数据结合使用

    我正在尝试将 csv 文件导入到表中 我已经弄清楚如何使用以下查询插入数据 LOAD DATA INFILE examplesofdata csv INTO TABLE coins FIELDS TERMINATED BY ENCLOSED
  • 使用 boost::regex 获取子 match_results

    嘿 假设我有这个正则表达式 test 0 9 我将其与以下内容相匹配 test1test2test3test0 const bool ret boost regex search input what r for size t i 0 i
  • 替换安全管理器 checkMemberAccess()

    Java 安全管理器方法checkMemberAccess https docs oracle com javase 7 docs api java lang SecurityManager html checkMemberAccess j
  • 用动画填充颜色 SVG 路径

    我使用以下方法来填充 SVG 路径的颜色 有没有办法给它添加动画 从中心开始填充颜色并展开 function btn test1 on click function path1 attr fill 0000 这个答案提供了四种不同的选择使用
  • 在 Maven 存储库中找不到项目

    我有一个带有子模块的 Maven 模块 父级的相关部分是这样的
  • T-SQL 函数获取存储字符的 ASCII 值

    我正在使用 T SQL 块来获取存储在数据库列中的 ascii 字符转储 我知道在 Oracle 中使用 DUMP 函数可以轻松完成此操作 我不熟悉 SQL Server sytax 但我正在使用类似的东西 SET NOCOUNT ON C
  • 来自柏林噪声的每顶点法线?

    我正在 Opengl 几何着色器中生成地形 但在计算照明法线时遇到问题 我使用几何着色器中实现的柏林噪声函数动态生成每帧地形 因为这 我需要一种有效的方法来计算每个顶点的法线基于噪声函数 没有纹理或任何东西 我可以采用 2 条边的叉积来获取
  • 与简单的用户 ID 检查相比,声明/角色/策略授权的技术优势是什么?

    我使用 Identity Server 并通过策略和角色保护端点 这些反映在我分发给客户端的访问令牌中 今天 我收到建议 不要保护这样的方法 Authorize Policy Elevated HttpGet metadata public
  • CUDA 中的嵌套内核

    CUDA 目前不允许嵌套内核 具体来说 我有以下问题 我有N个M维数据 为了处理 N 个数据点中的每一个 需要按顺序运行三个内核 由于不允许嵌套内核 因此我无法创建调用三个内核的内核 因此 我必须串行处理每个数据点 一种解决方案是编写一个包
  • C++ 中短路 `operator<<` 输出

    我有一些代码散布着这样的结构 if debug Output lt lt f1 lt lt f1 lt lt n 现在我想做的是编写一个流类Debug我可以这样写 Debug lt lt f1 lt lt f1 lt lt n 如果设置了某
  • 简单的 TextView.setText 导致 40% CPU 使用率

    运行我的应用程序会导致我的手机 CPU 使用率达到约 40 final String position String format 02d 02d 02d time getHours time getMinutes time getSeco
  • Excel VBA 中的定时警报

    我在 Excel 2003 中制作了一个日历来跟踪任务和类似项目 我需要做的是通过 VBA 设置计时器 像这样的事情 run in x secs timetowait function to exec 有没有办法在 excel vba 中做
  • 如何用字符串替换缩写?

    我正在创建一个 XSL 文件 该文件将从 XML 文件中提取有关在我所在区域被拖走的汽车的信息 并按汽车被拖走的日期按升序对其进行排序 我需要在转换后的文件中显示拖车日期 车牌和汽车颜色 我的问题是每辆车的颜色都有缩写 我想要颜色的全名而不