xslt를 사용하여 xml을 xhtml로 구문 분석하는 코드 예제

怪我咯
풀어 주다: 2017-04-10 11:21:34
원래의
1381명이 탐색했습니다.

xslt파싱의 기본 형식은 다음과 같습니다. 필요한 친구는 참고로 xslt를 사용하여 파싱하는

의 기본 형식은 다음과 같습니다. 예를 들어

코드는 다음과 같습니다.

      //这里可以包含一些xhtml的标签    
로그인 후 복사


스타일시트 언어 ), xsl은 xml의 스타일 시트이고 xsl은 xslt(XML 문서를 변환하는 데 사용되는 언어), x-path(XML 문서에서 탐색하는 데 사용되는 언어), >xsl-fo의 세 부분으로 구성됩니다. (XML 문서 형식을 지정하는 언어) 이전 코드에서 설명한 대로 //m.sbmmt.com/에서 관련 내용에 대한 튜토리얼을 찾을 수 있습니다. 그런 식으로 xslt는 xml 버전으로 시작하여 변환합니다. 형식은 ...
xslt는 처음 접해서 잘 모르겠습니다. . 완전히 이해되지는 않았습니다. 아래는 제가 배우고 사용할 때 접한 몇 가지 핵심 사항입니다.

1. 재귀 및 매개변수 전달 방법: 예를 들어 xml 파일은 다음과 같습니다.

코드는 다음과 같습니다.

                                           
로그인 후 복사

이제 실제로 가족 관계를 표현하기 위해 xslt를 작성해야 합니다. , 가족 관계는 가계도가 있으므로 서로 다른 수준의 들여쓰기를 출력하여 이 관계를 표현합니다. 그러면 가장 작은 세대가 마지막에 들여쓰기되어 가장 많이 들여쓰기되는 수준입니다. xsl 파일의 코드는 다음과 같습니다.

코드는 다음과 같습니다.

              

name:,sex:,age:

로그인 후 복사

여기서 먼저 level이라는 매개변수를 정의합니다. 템플릿에서 < 할당과 같은 구문을 사용하여
매개변수 수준의 값은 처음에 "0"으로 할당되며 text-indent:{$와 같이 매개변수 수준($level)의 값을 들여쓰기 값으로 사용합니다. level}em이므로 xml 콘텐츠를 렌더링할 때 첫 번째 레이어에 들여쓰기가 없습니다. 첫 번째 레이어를 렌더링한 후
;xsl:with-param name="level" select=" $level + 2"/>

이 방법은 매개변수 수준의 값을 누적하여 재귀를 달성합니다. 레이어가 렌더링될 때마다 매개변수 값이 2로 추가되어 가계도의 구조를 실현하기 위해 다양한 들여쓰기 수준을 실현하고 여기서는 @name과 같은 @+ 속성을 사용하여 값을 얻습니다. 노드 속성의

2. 매개변수를 사용하여 대체 줄의 색상을 변경합니다.
여전히 위의 예와 매개변수 수준을 인용하면서 매개변수에 +2(짝수) 대신 +1(홀수)을 지정합니다. ) 재귀 중에 (.. test="$level mod 2 = 0") 또는 (.. test="$level mod 2 = 1")을 통해 홀수 또는 짝수 행을 선택할 수 있습니다. ... ...;give 배경색
은 홀수 행과 짝수 행에 대해 다르므로 대체 행의 색상을 변경하는 효과를 얻습니다. 구체적인 코드는 다음과 같습니다.
코드는 다음과 같습니다.

                

name:,sex:,age:

name:,sex:,age:

로그인 후 복사


三、符号转义以及CDATA语法:
目前碰到的只有“<”和“>” 要转义成 <和> 如果在 表达式里出现这两个符号,页面在预览的时候就会报错;
另外我们需要将原文件的内容原封不动的输出来,包括换行或上面的大于和小于号等页面元素,这时候就需要CDATA这个标签, CDATA全称character data,翻译为字符数据,数据不进行转义直接输出。语法格式如下:
这里放置需要显示的字符
例如:

在页面上显示的内容将是" ";
四、几个教程中并没有提到的名词:
1、local-name();例子: ,这里所表达的意思就是当前节点的名字。
2、 ... ,call-template和apply-template的区别,简单说apply是应用,call是调用。
用apply时,引擎自动搜索与当前select指定xpath的匹配节点相匹配的template(该template必须有属性match)并使用该template进行处理,此时需要指定的是select的path。
用call时就跟其它语言调用函数一样,必须指定name属性,相应的,该template必须有name属性,当然,也可以在这时with-param(当然相应的模板中有对应的param才行,不过这个不强制要求)。通过设置mode属性可以调用同一内容的不同表现形式,这个由自己去定义。
3、count(ancestor::*)这种写法是计算当前节点有多少个祖先节点,当然 ancestor也可以用child,following-sibling等xpath关系。
五、对于要符合多条件的判断,xslt不能很好的支持:
以家族树为例,我要取一个位于第二层的,名字叫Lichao的人,如果按字面理解我们可以写成 ... ,但是这样写在预览xml的时候就会报错,我也想用条件里面套条件这样的写法,也不符合语法,查了很多相关的资料,没有找到很好的解决办法。
以上是在学习和使用xslt对xml进行解析的过程中的一些感想和记录,xslt很强大,有很多功能都没有涉及,当然,我还要继续学习和研究。

위 내용은 xslt를 사용하여 xml을 xhtml로 구문 분석하는 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!