2017-11-01 18 views
0

어느 누구도 BIRT 보고서를 읽고 보고서에 사용 된 라이브러리 및 데이터 집합을 가져 오는 방법을 안내하거나 도와 줄 수 있습니다. BIRT 보고서에 사용 된 라이브러리 파일을 읽으려면 어떻게해야합니까?

나는 내가 의 org.apache.xerces.jaxp.SAXParserFactoryImpl을 얻고있다 .every 시간을 javax.xml.parsers.SAXParserFactory --error 캐스트 할 수없는 파일을 읽을 수있는 모든 다른 파서를 사용했습니다.

나중에 Apache Xerces - DOM 파서를 시도했습니다. Apache Xerces-DOM Parser를 사용하면 XMl 형식의 보고서를 구문 분석 할 수 있습니다. 그러나 읽을 수는 없습니다 ... 오류가 발생했습니다.

도움이 필요합니다.

+0

질문이 명확하지 않습니다. BIRT를 사용하여 보고서 디자인을 실행하지 않는 것 같습니다. 귀하의 질문에 birt라고 태그가 붙어 있지만 분명히 BIRT 사용에 관한 질문이 아닙니다. – hvb

+0

내 질문에 대한 BIRT 보고서 only.I 구문 분석 및 BIRT 보고서 디자인 file.Wat 라이브러리를 사용하고 .rpt 디자인 파일에서 사용하는 데이터 집합을 사용합니다. – ASHA

답변

0

나는 전에 이런 식으로했습니다. 당신은 당신이주의 깊게 읽는다면 난 당신이 아이디어를 얻을 수있을 거라 생각,

  1. javax.xml.parsers.*
  2. javax.xml.xpath.*
  3. 아래 org.w3c.dom.*

은 샘플 코드의 XPath와 함께 JDK에 emdeeded 표준 파서를 사용할 수 있습니다 .

//this path contains dataset start 
    public static final String RPTLIBRARY_XPATH_DATA_SET_NODE_START = "//library/data-sets/oda-data-set[@name='"; 

    //this path contains SQL in rptlib 
    public static final String RPTLIBRARY_XPATH_QUERYTEXT_NODE_END = "']/xml-property[@name='queryText']"; 

    public Document getXMLAsDocumentObject(InputStream is) throws ParserConfigurationException, SAXException, IOException{ 
     DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
     Document doc = dBuilder.parse(is); 
     doc.normalize(); 

     return doc; 
    } 

    public Node getNode(Element element, String xPath) throws XPathExpressionException{ 
     _log.debug(xPath); 

     XPathExpression xPathExpression = XPathFactory.newInstance().newXPath().compile(xPath); 
     Node tableNode = (Node) xPathExpression.evaluate(element, XPathConstants.NODE); 

     return tableNode; 
    } 

    public NodeList getNodeList(Element element, String xPath) throws XPathExpressionException{ 
     _log.debug(xPath); 
     XPathExpression xPathExpression = XPathFactory.newInstance().newXPath().compile(xPath); 
     NodeList nodeList = (NodeList) xPathExpression.evaluate(element, XPathConstants.NODESET); 

     return nodeList; 
    } 
+0

정말 많이 감사합니다 .. 나는 같은 방식으로 사용하려고합니다. – ASHA