2011-01-16 3 views
1

클라이언트의 XML 파일이 있는데 형식이 올바르지 않습니다. 이 xml은 플래시를 통해 생성되었으며 태그를 추가 할 소스 파일이 없습니다.PHP를 사용하는 형식화되지 않은 XML 구문 분석

PHP에서 xml 파일을 열 수있는 방법이 있습니까? preg_replace 태그를 "무언가"로 표시하고 출력을 표시 할 수 있습니까?

PHP 파일을 열어 본 후 내용을 읽으려고 시도했지만 출력이 표시되지만 줄 바꿈이 없습니다.

XML을 읽고 즉시 태그를 수정 한 다음 콘텐츠를 표시하기 위해 파일을 읽을 수있는 방법이 있습니까?

예제 XML 콘텐츠 - 기본적으로 정보는 자체 태그이지만 ""와 같은 상위 태그가 없습니다. 어떤 아이디어로도이 모든 정보를 어떻게 표시 할 수 있습니까? 내가
[16시 38분]에
YYYYYY에

XXXXXX를 표시 할
[16시 38분] mr.abc:hey
XXXXXX 밖으로

<?xml version="1.0" encoding="UTF-8"?> 
<in>---xxxxxx in---</in> 
<in>---yyyyyy in---</in> 
<time>[16:38]</time> <user>mr.xyz</user><separator>:</separator> </content>hello</content> 
<time>[16:38]</time> <user>mr.abc</user><separator>:</separator> </content>hey</content> 
<out>---xxxxxx out--</out> 
+0

또 다시, 당신이 원하는 것은 거의 strip_tags()입니다. – dqhendricks

+0

모두에게 감사드립니다. 마지막으로 파일을 열어 foreach를 사용하고
을 추가했습니다. 이 지금은 잘 작동합니다. 다시 한 번 감사드립니다. 여러분 모두에게 – Jay

답변

0

당신은 사용할 수 jQuery- mr.xyz:hello 값을 얻기 위해 같은 라이브러리. 여기에 하나입니다 http://code.google.com/p/phpquery/wiki/Basics

+0

덕분에 .. 나는 이것을 시도하고 여기에 계속 게시 할 것입니다. 감사. – Jay

0

당신은 다음과 같이 할 수 있습니다 - 그리고 콘텐츠 형식 헤더를 PHP 함수 header('Content-type: text/xml');을 사용하여 XML로 설정하면 브라우저가이를 XML 문서로 제공합니다.

function replaceTag($tag, $new, $content) 
{ 
    if (!preg_match('/\<'.$tag.'(.*?)\>(.*?)\<\/'.$tag.'\>/i', $content)) 
    { 
     return FALSE; 
    } 
    return preg_replace('/\<'.$tag.'(.*?)\>(.*?)\<\/'.$tag.'\>/i', "<{$new}$1>$2</{$new}>", $content); 
} 

echo replaceTag('in', 'newIn', '<in>123</in>'); // Should output <newIn>123</newIn> 

편집 : 나는 질문을 잘못 해석했을 수 . XML 출력의 데이터를 사용하여 무언가를하고 싶다면 PHP 내의 simplexml 메쏘드를 참조하십시오. 그 (것)들에 정보 더 여기에서 찾아 낼 수있다; http://php.net/simplexml