当前位置: 首页 > 知识库问答 >
问题:

XSLT 1.0-如何检查字符串的条件

巫马磊
2023-03-14

我正在尝试对输入xml文件进行条件检查,并放置值。

输入xml:

<workorder>
    <newwo>1</newwo>
</workorder>

如果newwo是1,那么我必须将输出设置为“NEW”或“OLD”

预期产出为:

newwo: "NEW"

我的xslt是:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:xs="http://www.w3.org/2001/XMLSchema"  version="2.0">

<xsl:template match="/">

        <xsl:apply-templates select="NEWWO" />

</xsl:template>
<xsl:template match="/NEWWO">
    <xsl:text>{
      newwo:"
    </xsl:text>
        <xsl:choose>
            <xsl:when test="NEWWO != '0'">NEW</xsl:when>
            <xsl:otherwise>OLD</xsl:otherwise>
        </xsl:choose>
    <xsl:text>"
    }</xsl:text>
</xsl:template>

请帮帮我。事先谢谢!

共有2个答案

廉子民
2023-03-14

你可以按以下方式尝试

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      xmlns:xs="http://www.w3.org/2001/XMLSchema"  version="1.0">

 <xsl:template match="/">
  <xsl:choose>
    <xsl:when test="/workorder/newwo = 1">
     <xsl:text disable-output-escaping="no"> newwo:New</xsl:text>
</xsl:when>
    <xsl:otherwise>
 <xsl:text disable-output-escaping="no"> newwo:Old</xsl:text>                    </xsl:otherwise>
  </xsl:choose>
  </xsl:template>
  </xsl:stylesheet>
慕容念
2023-03-14

我看到了一些你没有得到输出的原因。

  1. XPath区分大小写NEWWO不匹配NEWWO

这里有一个更新的例子。

XML输入

<workorder>
    <newwo>1</newwo>
</workorder>

XSLT1.0

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

  <xsl:template match="/*">
    <xsl:apply-templates select="newwo" />
  </xsl:template>

  <xsl:template match="newwo">
    <xsl:text>{&#xA;newwo: "</xsl:text>
    <xsl:choose>
      <xsl:when test=".=1">NEW</xsl:when>
      <xsl:otherwise>OLD</xsl:otherwise>
    </xsl:choose>
    <xsl:text>"&#xA;}</xsl:text>
  </xsl:template>

</xsl:stylesheet>

输出

{
newwo: "NEW"
}
 类似资料:
  • 问题内容: 如果字符串中除了下划线以外不包含任何特殊字符,则只能在其程序中使用。我该如何检查? 我尝试使用unicodedata库。但是特殊字符只是被标准字符所代替。 问题答案: 您可以像这样使用和运行 用这条线 我们正在准备不允许使用的标点符号列表。如您所愿,我们正在从列表中删除并准备新的。因为在集合中查找速度更快。 如果至少一个字符位于中,则函数将返回。 编辑: 如评论中所述,这是正则表达式解

  • 问题内容: 在我的应用程序中,我从LDAP获取用户信息,有时完整的用户名使用了错误的字符集。例如: 它也可以是英语或俄语,并可以正确显示。如果用户名更改,它将在数据库中更新。即使我更改数据库中的值,它也无法解决问题。 我可以在保存之前修复此问题 但是,如果我将它用于包含俄语字符的字符串(例如,“Тест61Тестович61”),则会得到类似“ ??? 61 ??????? 61”的信息。 您能

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 问题内容: 如何检查字符串是否不为null? 问题答案: 通过检查是否为空 如果您要检查其是否为空或为空-您需要 我更喜欢使用commons-lang

  • 在我的应用程序中,我可以接受如下格式的字符串: 现在我想写一个regex模式来检查这个格式,所以我写这个模式: https://regex101.com/r/oM1qO9/3 这个模式可以工作,但如果我将字符串更改为下面的示例,请再次工作,因为选择第一个引号和最后一个引号,这样字符串就与模式匹配。 https://regex101.com/r/oM1qO9/4

  • 问题内容: 我似乎无法找到的代码等效,像功能,这在任何地方为Python: 基本上,我想检查一个字符串是否包含列表中的子字符串。 问题答案: 试试这个测试: 如果中包含任何子字符串,它将返回。 请注意,链接的问题中有的答案的Python类似物: 在Python 3中,您可以直接使用: 虽然上面使用生成器表达式的版本可能更清楚。