php, xml, xpath, xslt 이용하기
글쓴이: lacovnk / 작성시간: 수, 2008/12/10 - 8:35오후
xml 문서의 특정 노드에 대해서만 xslt를 적용하려 합니다.
(동적으로 생성해야 하므로, xslt 내에서 xquery 를 박아넣을 수는 없습니다;)
... 그런데 검색된 부분이 아니라 자꾸 전체 문서에 대해서 변환되네요.
php5 입니다.
아, 그리고 xml 에 get parameter를 넘겨주면 xslt로만 해결할 수는 없나요? (예를 들면 와우 전정실같은 형태) 어차피 중간에 처리해주는 부분이 들어가야하는건가..
// 1. 검색할 xml 문서 만들고
$xmlObj = new DOMDocument;
$xmlObj->loadxml($xml_content);
// 2. xpath로 해당 노드를 찾았음
$xpath = new DOMXPath($xmlObj);
$query = "/bar[@id='bar']";
$entries = $xpath->query($query);
$qres = $entries->item(0);
// 3. 변환을 위한 xslt processor 생성
$proc = new XSLTProcessor;
$proc->importStyleSheet(DOMDocument::loadxml($xslt_content));
// 4. 이후 해당 노드에 대해서만 xslt 적용
$result = $proc->transformToDoc($qres);
Forums:
왜 저렇게 안되는지
왜 저렇게 안되는지 모르겠지만, 다음과 같이 중간에 XML string을 생성해서 해결했습니다.
댓글 달기