首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用EXSLT在Java中验证XML?

用EXSLT在Java中验证XML?
EN

Stack Overflow用户
提问于 2017-05-24 23:41:32
回答 1查看 51关注 0票数 0

我需要用使用EXSLT的模式http://cpe.sunat.gob.pe/sites/default/files/inline-images/Reglas%20de%20Validaci%C3%B3n.zip验证一些XML。我也使用过Xalan和SaxonHE,但是这些方法不起作用,因为架构师使用的是regexp:match,我真的很难用包含正则表达式的模式验证XML:

代码语言:javascript
复制
<xsl:if test="./cbc:ID/@schemeID ='02' and not(regexp:match(./cbc:ID,'^[F][A-Z0-9]{3}-[0-9]{1,8}$|^(E001)-[0-9]{1,8}$|^[0-9]{1,4}-[0-9]{1,8}$'))">

EXSLT的代码可在github https://github.com/bzerangue/exslt.org上使用。

我的问题是,是否有一种方法可以使用java或javascript使用这些架构验证XML。

请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 08:53:17

Saxon9HE是XSLT2.0处理器,因此它使用正则表达式支持XSLT和XPath函数,比如https://www.w3.org/TR/xpath-functions/#func-matches。您应该能够将例如not(regexp:match(./cbc:ID,'^[F][A-Z0-9]{3}-[0-9]{1,8}$|^(E001)-[0-9]{1,8}$|^[0-9]{1,4}-[0-9]{1,8}$'))的用法替换为not(matches(cbc:ID,'^[F][A-Z0-9]{3}-[0-9]{1,8}$|^(E001)-[0-9]{1,8}$|^[0-9]{1,4}-[0-9]{1,8}$'))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44170141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档