XML 권 의 실전 금 낭(5):구조 트 리 맵

동기:처음에 이 진 트 리 를 만 드 는 것 은 회사 구조 도 를 만들어 야 하기 때 문 이 라 고 생각 했다.예전 의 방법 은 모두 이미지 소프트웨어 로 그림 을 직접 그 렸 다.예 쁘 지만 변동 이 있 을 때마다 새 것 을 그 려 야 합 니 다.다른 한편,웹 페이지 에 서 는 라인 의 표시,레이아웃 에 한계 가 있다.동적 으로 생 성 된 데이터 에 따라 레이아웃,포 지 셔 닝 이 상당히 어렵 고 미관 적 으로 도 만 족 스 럽 지 못 하 다.여러 가지 시 도 를 한 후에 XML+XSL 로 데이터 연산 을 하기 로 결 정 했 습 니 다.VML 로 라인 을 미화 하고 JAVASCRIPT 로 대상 을 포 지 셔 닝 합 니 다.재료:XML 볼 륨 의 구조 트 리 그림 은 2 개의 파일 이 있 습 니 다:flow 2.xml 과 flow 2.xsl  효과:여기 탐색  설명:이 진 트 리 사고(1)...이상 은 모두 VML 의 기본 격 이 므 로 자세히 설명 하지 않 겠 습 니 다. XML 은 트 리 구조 입 니 다.모든 데 이 터 를 읽 으 려 면 이 XML 데이터 트 리 를 옮 겨 다 녀 야 합 니 다.재 귀 연산 은 XSL 의 장점 중 하나 이다.나 도 다른 여러 가지 방법 으로 반복 연산 에 실패 한 후에 야 XSL 을 사용 하기 로 결정 했다. 이 진 트 리--구조 도Sailflying[email protected]1첫 번 째 노드2두 번 째 노드......ocess>3세 번 째 노드.노드 2 와 노드 3 을 노드 1 의 왼쪽 아래 와 오른쪽 아래 에 위치 하면 된다.여기 서 나 는 좌우 노드 의 연결선 을 각각 녹색 과 빨간색 으로 사용 하여 표시 하기 편리 하 다.앞에서 우 리 는 XSL 의 재 귀 기능 에 대해 말 했 습 니 다.모든 상세 한 디 스 플레이 절 차 를 더욱 분명하게 보기 위해 아래 의 코드 를 본 떠 alert 문 구 를 추가 하면 됩 니 다. ......alert("점차 표시");......위의 느 린 동작 을 보 았 습 니 다.제 생각 을 알 수 있 을까요? 이 진 트 리 사고방식(2)나의 사고방식 은 매우 간단 하 다.(1)현재 노드 의 자 료 를 읽 고 VML 로 새로운 대상 을 생 성 한다.대상 에 게 초기 값(예 를 들 어 name,id,style 스타일 등)을 부여 합 니 다(2)스 크 립 트 제어 로 현재 대상 에 게 위 치 를 지정 합 니 다(3)현재 노드 와 아버지 노드 사이 에 화살표,선 을 추가 합 니 다.(4)현재 노드 의 하위 노드 를 계속 찾 고 끝 날 때 까지 순환 합 니 다.모든 노드 를 옮 겨 다 니 며 나 무 를 만 들 었 다 는 것 이다.   전체 재 귀 과정 은 위의 이 세 모듈(template)에 의 해 이 루어 진다.첫 번 째 template 는 현재 노드 의 모든 하위 노드 의 템 플 릿 과 일치 할 때 뒤의 두 template 를 호출 합 니 다.그리고 뒤의 두 template 는 구체 적 으로 실 행 될 때 첫 번 째 template 를 호출 했 는데 이것 은 재 귀 함수 에 해당 합 니 다.문법: 현재 노드 의 모든 하위 노드 의 템 플 릿 과 순서대로 일치 하려 면 이 요소 의 기본 형식 인를 사용 해 야 합 니 다.그렇지 않 으 면 일치 하 는 노드 는 select 매개 변수 에서 XPath 표현 식 의 값 으로 결 정 됩 니 다.예 를 들 어 (1)과(2)의 역할 은 모두 selection 매개 변수 가 제시 한 표현 식 의 문자열 값 을 되 돌려 주 는 것 입 니 다.그들의 검색 조건 이 같 기 때문에 되 돌아 오 는 값 도 같다.사용 하 는 장소 에 따라 쓰기 형식 도 다르다.1);(2){./iprocess/text()}(1)과(2)의 역할 은 모두 selection 매개 변수 가 제시 한 표현 식 의 문자열 값 을 되 돌려 줍 니 다.그들의 검색 조건 이 같 기 때문에 되 돌아 오 는 값 도 같다.단지 사용 하 는 장소 가 다 를 뿐,그들의 쓰기 형식 도 다르다.예 를 들 어 우 리 는 다음 코드 를 만 들 고 싶 습 니 다.
우 리 는 이름 을"name"이 라 고 가정 합 니 다.매개 변수 값 은 XML 데이터 에서 현재 노드 아래 의 하위 노드 북 의 값 입 니 다.첫 번 째 방법 은 속성 이름 을 먼저 추가 하 는 것 입 니 다.추가 매개 변수
내용
두 번 째 표기 법 은 속성 이름과 매개 변수 값
내용
을 직접 추가 하여 내 가 쓴 코드 의 예 를 볼 수 있 습 니 다.XSL 공식 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"표준 에서는 그의 텍스트 값 과 그의 모든 하위 노드 의 내용 을 나타 낸다.여러분 은 하위 노드 가 있 는 것 을 출력 하고 하위 노드 가 없 는 것 이 표시 되 는 결과 가 같 는 지 시험 해 볼 수 있 습 니 다.(2)주의:IE5 는를 지원 하지 않 습 니 다.네 임 스페이스 는 xmlns:xsl="http://www.w3.org/TR/WD-xsl"또한 대부분의 XML 교과서 에 표 시 된 코드 에 encoding="gb 2312"를 추가 하 는 경 우 는 드 물기 때문에 우 리 는 XML 에서 중국 어 를 사용 할 때 오 류 를 보고 할 수 있 습 니 다.그 이 유 는 이 설명 을 쓰 지 않 았 기 때 문 입 니 다. 후기:여기 서 말 하 는 것 은 일종 의 사고 이다.만일 유추 가 통 하면 자연히 쓸모 가 있 을 수 있다.

좋은 웹페이지 즐겨찾기