dom4j 예제

  • 0

dom4j 예제

Category : Senza categoria

규칙 API는 W3C XSLT의 OO 표현입니다. API는 메모리 내 dom4j 트리를 통과하는 또 다른 방법을 정의합니다. 통과 알고리즘을 재귀 하강이라고 하며 XSLT가 정의한 것과 동일합니다. 이러한 알고리즘은 컴파일러 구성에도 사용되며 문헌에 설명되어 있습니다. (3) 각 규칙에 대해 org.dom4j.rule.pattern 및 org.dom4j.rule.Action의 인스턴스를 설치합니다. org.dom4j.rule.Pattern은 노드 일치에 사용되는 XPath 표현식으로 구성됩니다. 새 문서를 처음부터 만들어야 하는 경우가 많습니다. 여기에 그 작업의 예입니다. 때로는 기존 XML 트리에 요소를 삽입해야 하는 경우가 있습니다. 이것은 dom4j 컬렉션 API를 사용하여 쉽게 할 수 있습니다. dom4j는 메모리에 있는 XML 트리를 나타내는 개체 모델입니다.

dom4j는 XML을 처리, 조작 또는 탐색하고 XPath 및 XSLT와 함께 작업할 뿐만 아니라 SAX, JAXP 및 DOM과 통합할 수 있는 강력한 기능 세트를 제공하는 사용하기 쉬운 API를 제공합니다. API는 org.dom4j.rule 패키지에서 찾을 수 있으며 이 장에서는 dom4j의 이 강력한 기능을 소개합니다. 목록 4는 카탈로그.xml 문서를 카탈로그 수정.xml 문서로 수정하는 데 사용되는 예제 프로그램인 Dom4JParser.java를 보여 주며, 이 프로그램은 카탈로그를 수정한 문서입니다. DocumentFactory 메서드는 createXXX() 명명 규칙을 따릅니다. 예를 들어 특성을 만들려면 createAttribute()를 호출합니다. 클래스가 종종 DocumentFactory를 호출하거나 다른 DocumentFactory 인스턴스를 사용하는 경우 멤버 변수로 추가하고 생성자에서 getInstance를 통해 시작할 수 있습니다. XML로 작업할 때 XSLT를 처리해야 하는 경우도 많습니다. XSLT는 주로 문서 의 스타일을 정하는 데 사용됩니다. 이러한 상황에서 우리는 우리가 문서에 XSLT를 적용하는 방법을 알고 있어야합니다, 우리는 변압기 공장을 사용하는 방법을 알고 있어야 의미. 아래 표시된 예(샘플 8:) JAXP API를 사용합니다(잘란 또는 색슨과 같은 모든 XSLT 엔진을 지원).

샘플 8: 문서 개체에 XSLT적용 (4) a org.dom4j.rule.Action은 일치가 발생한 경우 프로세스를 정의합니다. 위의 예제 코드는 org.dom4j.io.SAXReader를 사용하여 지정된 파일에서 완전한 dom4j 트리를 빌드하는 것을 명확히 해야 합니다. org.dom4j.io 패키지에는 XML 개체의 생성 및 직렬화를 위한 클래스 집합이 포함되어 있습니다. read() 메서드는 소스를 나타내는 다른 종류의 개체를 전달할 수 있도록 오버로드됩니다. 앞에서 언급했듯이 dom4j는 인터페이스 기반 API입니다. 즉, DocumentFactory 및 org.dom4j.io 패키지의 판독기 클래스는 항상 구체적인 구현 클래스가 아닌 org.dom4j 인터페이스를 사용합니다. 컬렉션 API 및 W3C의 DOM은 이 디자인 접근 방식을 사용하는 API의 다른 예입니다. 이 광범위한 디자인은 빌베너스 (BillVenners)에 의해 설명됩니다.

대부분의 자바 개발자는 자바.util.Iterator 또는 그것의 조상 자바.util.enumeration을 사용했다. 두 클래스 모두 컬렉션 API의 일부이며 컬렉션의 요소를 방문하는 데 사용됩니다. 다음은 이터레이터 사용의 예입니다: Java 스레드에 익숙한 경우 java.lang.runnable 및 org.dom4j.rule.Action 간의 사용 유사성이 발생할 수 있습니다. 둘 다 플러그인 또는 리스너 역할을 합니다. 그리고이 관찰자 패턴은 OO, 특히 자바에서 광범위하게 사용됩니다. 우리는 여기에 관찰자를 개인 내부 클래스로 구현했습니다. 외부 클래스로 선언하도록 결정할 수도 있습니다. 그러나 이렇게 하면 org.dom4j.rule.StyleSheet의 인스턴스를 공유해야 하기 때문에 디자인이 더 복잡해집니다. 현재 응용 프로그램을 리팩터링하고 있으므로 dom4j 트리를 DOM 트리로 변환해야 하는 경우가 있습니다. dom4j는 DOM 또는 SAX와 같은 이전 XML API와의 통합에 매우 편리합니다(SAX 이벤트 생성 참조). 예제로 이동해 보겠습니다: 기존 SAX 코드와 통합하기 위해 문서를 색소폰 이벤트로 출력하려면 org.dom4j.SAXWriter 클래스를 사용할 수 있습니다.