2016-04-05 14 views
1

の終了後、または周り私はcom.ximplewareを使用して、私はそのようなXMLを解析しよう:com.ximplewareの解析XML - のXPath - 構文エラー==>

<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コード:

私は私のXMLを変更することができない何をすべきか

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

任意のアイデア:

 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()); 
     } 

は私にエラーがスローされますか? ありがとう!

+1

MIGを私があなたを助けるのがずっと簡単です –

答えて

2

VTD-XMLに精通していないが、ドキュメントは、あなたが前selectXPath()でそれを使用してdeclareXPathNameSpace()を経由して名前空間接頭辞を登録する必要がありますことを示唆している:あなたはVTD-XMLでそれをタグ付けした場合、それは希望、

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