2010-06-16 2 views
0

정말 XML XSLT PHP가 많은 것을 알고 있습니다. 예를 들어 XML + XSL -> XML with PHP

$xml = new DOMDocument; 
$xml->load("f.xml");

$xsl = new DOMDocument; $xsl->load('test.xsl');

// init and configure processor $proc = new XSLTProcessor; $proc->importStyleSheet($xsl); // import xsl document $xml2=$proc->transformToXML($xml); echo $xml2;

 
<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform"&gt ; 
<xsl:param name="owner" select="'Robert Kühn'"/> 
<xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="no"/> 
<xsl:strip-space elements="*"/> 
</xsl:stylesheet> 
하나의 XML 파일 : ' 이
<?xml version="1.0" encoding="UTF-8"?> 
<xPac> 
<xyz id="15603"><varrDaten id="15604" zeit="1271099572" rechte="1">Daten<vbuch><vsyautor>Alertz, Ulrich</vsyautor><vsytitel>Vom Schiffbauhandwerk zur</vsytitel><vsybarcode>20560194</vsybarcode><vsystatus>S</vsystatus></vbuch><vbuch><vsyautor>Ridolfi, Carlo�[Hrsg.]�</vsyautor><vsytitel>Vite dei Tintoretto da le</vsytitel><vsybarcode>20014784</vsybarcode><vsystatus>S</vsystatus></vbuch><vbuch><vsyautor>Ridolfi, Carlo�[Hrsg.]�</vsyautor><vsytitel> life of Tintoretto and o</vsytitel><vsybarcode>20074791</vsybarcode><vsystatus>S</vsystatus></vbuch></varrDaten></xyz></xPac>
내 XSLT 파일이 .. 조금 비어 보이는하지만 난 방법 = "XML을"'output 시도하지만 PHP는 특정 i는 수도 내 문제가 무엇인지 찾을 수 없습니다 . 하지만 도움이되지 않습니다 .. XML 파일은 거대하고 내가 그렇게 중요하지 않다고 생각합니다.

질문 : PHP는 항상 텍스트 또는 HTML로 데이터를 반환하지만 XML에서는 그렇지 않습니다. 내가 뭘 잘못하고있는 걸까요? xslt로 XML을 편집하고 XML (파일)로 다시 저장하기 만하면됩니다.

여러분의 도움에 감사드립니다!

+0

샘플 XML 및 XSL 파일이 훨씬 더 유용 할 것입니다. – Flavius

+0

여기에 묻는 질문은 없습니다. 나는 투표소에 가야한다. –

+0

xml 파일은 특별한 것이 아니며 모든 xml 파일에서 작동합니다. 문제는 내가 게시 한 것 같아 @xslt 더있다. 질문은 간단합니다 : PHP는 XML (또는 DOM 노드)을 반환하지만 일반 텍스트 (태그 없음)를 반환하지 마십시오 – rokdd

답변

1

내 해결책은 다음과 같습니다. XSL That Returns the XML unchanged 모두에게 도움을 주신 데 대해 감사드립니다.

+0

예, "unchenged XML을 반환하는 XSL"에 대한 대답입니다. 그러나 그건 당신의 질문이 아니 었습니다. 당신은 명시 적으로 ** "나는 단지 XML을 편집하고 싶다"**라고 썼다. 그러면 "편집"부분은 어디에 있습니까? 또한 템플릿없이 스타일 시트를 제공하기 때문에 (원하는 "에디션"을 선언하지 않고) 기본 템플릿에 의해 결과를 얻는 이유가됩니다. –

0

당신이 쓴 :

질문 : PHP는 텍스트로 항상 데이터를 반환 또는 HTML하지만 내가 잘못하고있는 무슨 XML ..에? xxxx로 XML을 으로 편집하고 XML (파일)에 다시 저장하고 싶습니다.

응답 : 스타일 시트가 모든 텍스트 노드를 문서 순서대로 복사하고 있습니다. 그런 다음 직렬화 fase에서 모든 결과 텍스트 노드가 단일 노드로 병합됩니다. 이 동작은 기본 제공 템플릿에서입니다. 당신이 원하는 것은 원하는 결과를 설명하는 템플릿을 제공하는 것이 아닙니다.

+0

을 의미합니까? 또는 다른 xsl 파일을 사용해야합니까? – rokdd