簡體   English   中英

如何在java中使用vtd-xml從xml文檔中讀取xmlns值

[英]How to read xmlns value from xml document using vtd-xml in java

XML:

  <Document xmlns="urn:abc:xyz">
<A>
    <B>
    </B>
</A>

需要獲取 xmlns ieurn:abc:xyz 的值。 我是 vtd-xml 的新手,只是通過閱讀一些帖子進行了嘗試。 以下是我到目前為止所做的..

 String testData = context.getXmlFragment().toString().trim();
        final VTDGen vg = new VTDGen();
        vg.setDoc(testData.getBytes());

        try {
            vg.parse(true);
            VTDNav vn = vg.getNav();
            final AutoPilot apParty = new AutoPilot(vn);
            apParty.selectXPath("/Document");

            int i = -1;
            while ((i = apParty.evalXPath()) != -1) {
                long l = vn.getContentFragment();
                System.out.println(" -==> " + vn.toString((int) l, (int) (l >> 32)));
            }
        }catch (XPathEvalException e) {
            e.printStackTrace();
        } 

這是在 XPath 中執行命名空間節點查詢的代碼...

import com.ximpleware.*;
public class queryNS {
    public static void main(String[] args) throws VTDException {
        // TODO Auto-generated method stub
        VTDGen vg = new VTDGen();
        String xml = "<test xmlns='xyz'><a/></test>";
        byte[] ba = xml.getBytes();
        vg.setDoc(ba);
        vg.parse(true);
        VTDNav vn = vg.getNav();
        AutoPilot ap = new AutoPilot(vn);
        ap.selectXPath("/test/namespace::node()");
        int i=0;
        while((i=ap.evalXPath())!=-1){
            System.out.println(" value ===>"+vn.toString(i+1));
        }
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM