2010-05-20 2 views
1

나는 W3C DOMXML 파서

<html> 
<div id='token' style='display:none;'> 
n0Y7ezLlIYA8R0K54rEmHaTOraBQVSPDjQaGlQxlGso4jdVN1kRxtcfskEs= 
</div> 
</html> 

를 사용하여 n0Y7ezLlIYA8R0K54rEmHaTOraBQVSPDjQaGlQxlGso4jdVN1kRxtcfskEs=를 추출하기 위해 노력하고있어하지만 난 누군가가 몇 가지 기본적인 튜토리얼 날 지점시겠습니까

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document doc = builder.parse(con.getInputStream()); 
NodeList list = doc.getElementsByTagName("div"); 

붙어 것 같다 그 날 해결 도움이 될 내 양도 논법. 감사합니다. .

편집 : 나는 그것이 작동 할 수 있지만,이 토큰을 얻을 수있는 예뻐 방법은

String token; 
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
Document doc = builder.parse(con.getInputStream()); 
Element root = doc.getDocumentElement(); 
NodeList items = root.getElementsByTagName("html"); 

for(int i = 0; i < items.getLength(); i++) { 

    Message message = new Message(); 
    Node item = items.item(i); 
    NodeList properties = item.getChildNodes(); 

    for(int j = 0; j < properties.getLength(); j++) { 
     Node property = properties.item(j); 
     String name = property.getNodeName(); 

     if(name.equalsIgnoreCase("div")) { 
      token = property.getFirstChild().getNodeValue());      
     } 

    } 

} 

어설픈 조금있을 것 같다 가지고

좋아? 내 CML 문서가 거대한 아니지만 내 경우 VTD-XML 파서에서

+2

는 어떻게 붙어 있습니까? –

+0

그래, 조금 편집 해 봤어. – lemon

+0

은 DOM이 유일한 옵션인가? –

답변

1
VTDGen vg= new VTDGen(); 

if (vg.parseFile("input.xml",false)){ 
    VTDNav vn = vg.getNav(); 
    vn.toElement(VTDNav.FIRST_CHILD); 
    int i = vn.getText(); 
    if (i!=-1) 
    System.out.println(" text node is "+vn.toString(i)); 

} 
+0

좋습니다. VTD를 확인해 보겠습니다. – lemon

1

최선을 제공, VTD-XML을 사용하여 몇 가지 예제 코드는 아래와 같습니다. VTD-XML 구문 분석기가 성능 벤치 마크를 제공 한 것처럼 SAX, DOM 등의 파서보다 더 낫다는 것을 설명하는 아래 링크를 참조 할 수 있습니다. http://www.codeproject.com/Articles/24354/VTD-XML-XML-Processing-for-the-Future-Part-II

// 읽기 XPath에 대한 http://www.codeproject.com/Articles/28237/Programming-XPath-with-VTD-XML 런타임에 xml 파일을 수정하기위한

public String readXpathValue(String dir, String file, String xpath) { 
     String value = null; 
     try{ 

      VTDGen vg = new VTDGen(); 
      int i; 
      AutoPilot ap = new AutoPilot(); 
      ap.selectXPath(xpath); 
      if (vg.parseFile(dir+file, true)) 
      { 
       VTDNav vn = vg.getNav(); 
       ap.bind(vn); 
       //XPath eval returns one node at a time 
       while ((i = ap.evalXPath()) != -1) 
       { 
        value = vn.toString(i); 
       } 
       // ap.resetXPath(); 

      } 
     } 
     catch (Exception e){ 
      System.out.println("Exception Occurred in reading Xpath Value : "+e); 
     } 
     return value; 

    } 

//

public void formCreateXMLRequest(MAMData mamData,Map<String, String> strTobeModified) throws DatatypeConfigurationException, PayPalUserCreationFailedException, ModifyException, TranscodeException, IOException, XPathEvalException, NavException, XPathParseException 
    { 
VTDGen vg = new VTDGen(); 
     if (!vg.parseFile(mamData.getDirectory() + mamData.getBatchRequest(), true)) 
      return; 
     VTDNav vn = vg.getNav(); 
     XMLModifier xm = new XMLModifier(vn); 
     AutoPilot ap = new AutoPilot(vn); 

     Set<String> xpathkeys= strTobeModified.keySet(); 
     for(String xpath : xpathkeys) { 


     ap.selectXPath(xpath); 
     while((ap.evalXPath()) != -1) 
      { 
       int p = vn.getText(); 
       xm.updateToken(p, strTobeModified.get(xpath)); 
      } 

      xm.output(mamData.getDirectory()+mamData.getBatchRequest()); 
     } 
    } 
+0

여기에 대한 질문에 대한 답이 없습니다. –

+0

나는 이것을 어떻게 대답으로 보지 않는지 알 수있다. 문제는 데이터 xpath 값을 얻는 것이었고, 그것은 정확히 나의 코드 예제가 할 일이다. – akshaymani

+0

단순히 코드를 덤프했습니다. 당신은 * 질문에 대답하지 않았습니다. 코드는 데모/예를위한 것이어야합니다. 그것은 대답 자체가 아닙니다. 대답의 일부일 수도 있습니다. –