2015-01-04 6 views
0

PLSQL 또는 Java를 사용하여 데이터 템플릿 (.xml) 파일을 구문 분석하는 표준 oracle 파서가 있습니까? 예를 들어, 나는 다음과 같은 데이터 템플릿을 구문 분석 할 :oracle apps의 데이터 정의 템플릿을 구문 분석

위의 데이터 템플릿에서
<?xml version="1.0" encoding="WINDOWS-1252" ?>  
<dataTemplate name="Employee Listing" description="List of Employees" v 
ersion="1.0"> 
<parameters>- Defines a single parameter for the Department Number 
      - with default of 20: 
     <parameter name="p_DEPTNO" dataType="character" 
    defaultValue="20"/> 
    </parameters> 
<dataQuery> 
    <sqlStatement name="Q1"> 
     <![CDATA[SELECT DEPTNO,DNAME,LOC from dept 
       order by deptno]]> 
    </sqlStatement> 
<xml name="empxml" expressionPath=".//ROW[DEPTNO=$DEPTNO]"> - Defines name 
    - and link to DEPTNO in Q1 
<url method="GET" realm="" username="" password=""> 
file:///d:/dttest/employee.xml</url> - Defines url for xml data 
</xml> 
</dataQuery>- 
<dataStructure>- The following section specifies the XML hierarchy 
       - for the returning data: 
    <group name="G_DEPT" source="Q1" 
     <element name="DEPT_NUMBER" value="DEPTNO" /> 
    <element name="DEPT_NAME" value="DNAME"/> 
- This creates a summary total at the department level based 
- on the salaries at the employee level for each department:     
    <element name="DEPTSAL" value="G_EMP.SALARY" 
     function="SUM()"/> 
       <element name="LOCATION" value="LOC" /> 
     <group name="G_EMP" source="empxml"> 
      <element name="EMPLOYEE_NUMBER" value="EMPNO" /> 
      <element name="NAME" value="ENAME"/> 
      <element name="JOB" value="JOB" /> 
      <element name="MANAGER" value="MGR"/> 
      <element name= "HIREDATE" value="HIREDATE"/> 
      <element name="SALARY" value="SAL"/> 
     </group>  
    </group>   
    </dataStructure> 
</dataTemplate> 

, 나는 템플릿이 유효 여부를 모든 구멍을 확인하고 태그를 닫아 여부를 확인하고 싶습니다. 이 외에도 위 템플릿에서 속성 값을 검색하려고합니다. 예를 들어, 요소 태그는 "name"및 "value"속성을 포함합니다. EMPLOYEE_NUMBER 및 EMPNO, NAME 및 ENAME 등이 필요합니다.

간단한 XML 파일 출력을 구문 분석하는 데 사용되지만 dbms_xmldom 및 dbms_xmlparser를 확인했습니다.

누군가가 도와 드릴 수 있습니까?

답변

0

나는 당신의 질문이 XML을 파싱하고 오라클과 덜 관련이 있다고 생각한다. a data projection library와 (공개 : 그 프로젝트와 제휴하고있어)

EMPLOYEE_NUMBER EMPNO 
NAME ENAME 
JOB JOB 
MANAGER MGR 
HIREDATE HIREDATE 
SALARY SAL 
+0

당신은 필드 값을 검색하고 있습니다 : 이름과 값을

public class ParseTemplate { @XBDocURL("resource://data.xml") public interface Template { public interface Field { @XBRead("./@name") String getName(); @XBRead("./@value") String getValue(); } @XBRead("//group[@name='G_EMP']/element") List<Field> getFields(); } @Test public void readAttributes() throws IOException { List<Field> fields = new XBProjector().io().fromURLAnnotation(Template.class).getFields(); for (Field field : fields) { System.out.println(field.getName() + " " + field.getValue()); } } } 

이 JUnit 테스트 인쇄 밖으로 모든 분야 문제가 빨리 해결된다, 이름에 따라. 그러나 필드 이름과 값을 모두 검색하려고합니다. 내 입력은 XML 파일이 될 것입니다. 종업원 관련 정보뿐만 아니라 부서 등 기타 정보도 있습니다. – WiredIn

+0

아, 그래. 나는 내 대답을 다듬을 것이다. – Cfx

+0

완료. 이제 필드 이름과 값이 인쇄됩니다. – Cfx