java - com.ximpleware 解析 XML - XPath - ==> 末尾或附近的语法错误

标签 java xml parsing xpath vtd-xml

我使用 com.ximpleware 并尝试解析这样的 XML:

<S2SCTScf:SCTScfBlkCredTrf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:S2SCTScf="urn:S2SCTScf:xsd:$SCTScfBlkCredTrf" xsi:schemaLocation="urn:S2SCTScf:xsd:$SCTScfBlkCredTrf file:///T:/CommonData%201/CBS/CBS%20Payments%20Team/Testing/XSD/SCT/SCTScfBlkCredTrf.xsd">
        <CdtTrfTxInf>
            <PmtId>
                <EndToEndId>171766 12856615</EndToEndId>
                <TxId>6022064LAS99</TxId>
            </PmtId>
        ..............
        </CdtTrfTxInf>
        ..............
</S2SCTScf:SCTScfBlkCredTrf>

和java代码:

        VTDGen vg = new VTDGen();
        if (vg.parseFile("aaa.xml",true)){
                         VTDNav vn = vg.getNav();
                         AutoPilot ap = new AutoPilot(vn);
                         ap.bind(vn);
                         str = "/S2SCTScf:SCTScfBlkCredTrf/CdtTrfTxInf";
                         ap.selectXPath(str);
                         System.out.println(ap.evalXPath());
        }

抛出一个错误:

 Syntax error after or around the end of ==>
 Exception during navigation com.ximpleware.XPathParseException: No URL found for prefix:S2SCTScf

知道如果我无法修改 XML,我应该做什么? 谢谢!

最佳答案

不熟悉vtd-xml,但文档建议您需要通过 declareXPathNameSpace() 注册命名空间前缀在 selectXPath() 中使用它之前:

.....
ap.declareXPathNameSpace("S2SCTScf", "urn:S2SCTScf:xsd:$SCTScfBlkCredTrf");
str = "/S2SCTScf:SCTScfBlkCredTrf/CdtTrfTxInf";
ap.selectXPath(str);
.....

关于java - com.ximpleware 解析 XML - XPath - ==> 末尾或附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36420112/

相关文章:

c - 如何将带空格的字符串解析为整数

java - 在 Java 中解析 Java 的最佳方式

java - 继承同名但返回类型不同的方法

java - 是否有必要在DefaultTreeModel中调用nodesWereInserted()和类似方法?

java - 在 Spring 中将 bean 注册为字符串列表

java - ProcessBuilder启动java程序: IOException.无法启动进程。原因:无法运行程序CreateProcess error=2

android - 从图库中获取选定的图像到 ImageView

java - 当我切换到包含 fragment 的 Activity 时应用程序崩溃(二进制 XML 文件行 #10 : Binary XML file line #10: Error inflating class fragment)

java - 为什么jsp中的欢迎页面内容没有加载?

php - 隐藏 “Creating default object from empty value in”输出