如何使用xslt从XML节点值中删除前导零

时间:2017-12-20 10:48:47

标签: xslt

在我的环境中我打两个电话来获取来自不同组织的帐户详细信息,并且两个组织都返回帐户详细信息,但是他们在accountNumber中添加了额外的前导零,所以当我比较请求和响应帐号时,我的代码失败了,有没有办法使用xslt从xml下面删除多余的零。

*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}

.container {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.container .fixed {
  position: fixed;
  width: 100%;
  background: aquamarine;
  z-index: 2;
}
.container .fixed button {
  display: block;
  padding: 1em;
  border-radius: 5px;
  box-shadow: none;
  border: 0;
  background: #d7d7d7;
}
.container .fixed .appended {
  padding: 1em;
  background: #fff;
  border: 1px solid blue;
  margin-bottom: 1em;
}
.container .fill {
  width: 100%;
  background: orange;
  flex: 1;
}

谢谢,

2 个答案:

答案 0 :(得分:2)

您可以使用format-number功能,如下所示:

<xsl:value-of select="format-number(.//accountNumber, '#')"/>

结果:

111118800

答案 1 :(得分:0)

在XSLT 2或更高版本中,您可以在replace(., '^0+', '')的上下文中使用xsl:template match="accountNumber"来删除包含字符串操作的前导零(http://xsltfiddle.liberty-development.net/3Nqn5Y3/1),或者您可以使用xs:integer(.)删除通过将元素内的值转换为整数(http://xsltfiddle.liberty-development.net/3Nqn5Y3)来获得前导零。