【问题标题】:com.ximpleware parse XML - XPath - Syntax error after or around the end of ==>com.ximpleware 解析 XML - XPath - ==> 之后或附近的语法错误
【发布时间】:2016-04-05 07:45:32
【问题描述】:

我使用 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 吗? 谢谢!

【问题讨论】:

    标签: java xml parsing xpath vtd-xml


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 2017-02-20
      • 1970-01-01
      相关资源
      最近更新 更多