【问题标题】:Specific part/character of the value in XMLXML 中值的特定部分/字符
【发布时间】:2018-11-12 11:52:25
【问题描述】:

有谁知道如何在节点的 XML 值中选择特定字符或部分?

例如,我有 <Country> Holland </Country><City>'s-Hertogenbosch</City> 的值,我想在 <City> 中从 <Country>'(单引号)中选择“a”字符,而不使用 substring() 函数:我怎么能做到这一点?我几乎尝试了所有方法,但除了 substring,substring-before 和 substring-after 都不起作用。

【问题讨论】:

  • 你也可以使用analyze-string和replace函数
  • 你的问题不清楚。你怎么知道你想选择哪个角色?选择什么目的? -- 另外,不使用 substring() 函数是什么意思?这些函数是 XPath/XSLT 的组成部分。如果您不能使用它们,请重新标记您的问题。
  • 实际上我的问题很清楚..例如,当特定节点中的大多数值都有单引号并且我无法将它们注入数据库时​​,我有多个入站消息,例如特定的 XML 格式可以用反斜杠 '\' 转义那些单引号,但我只能手动使用每个节点中的子字符串函数来做到这一点。如果我有几十个带单引号的值怎么办?..我该如何解决它们?
  • 不,实际上你的问题是经典的XY problem。如果要转义单引号,则需要将它们替换为转义字符串。在 XSLT 1.0* 中,这是使用命名递归模板完成的 - 参见例如:stackoverflow.com/questions/30339128/… -- (*) 我从 your other question 假设您不能使用 XSLT 2.0。

标签: xml xslt xpath tibco tibco-business-works


【解决方案1】:

我两天前解决了这个问题,首先我使用 render-xml() 函数渲染了整个数据,并在输出中以字符串的形式提供了整个节点集。然后我使用函数 tokenize() 在每个字符串中拆分该字符串引号字符或'a'..例如tokenize($string, "&")和在另一个变量中我把它们放在一起像这样string-join($tokenize, "\&ampt;")..它似乎对我有用......以前我用concat-sequence-format(&tokenize,"\&ampt;")代替字符串我插入一个节点集,但显然不工作(作为一个节点集),我不知道为什么。

【讨论】:

    【解决方案2】:

    不清楚您要达到的目标。您可以做的是使用以下流程: 将 xml 转换为干净的字符串(丑化它)。 使用带有 java 正则表达式 RegExp 的 java 活动 将包含该字符的选定单词放入列表结构中

    请详细说明您要达到的目标

    【讨论】:

    • 他想在字符串中查找字符。问题是用户在问题中提供的信息是抽象的,并且没有提供足够的细节。我不得不处理一些类似的问题,最好的办法是子字符串或拆分。
    • 不,他要处理 XML。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2014-07-03
    • 2011-12-03
    • 1970-01-01
    相关资源
    最近更新 更多