2012-03-28 2 views
0

PHP를 사용하여 XML 파일에서 데이터를 검색하려고합니다. 특정 요소의 값을 얻으려고하지 않고 싶다면 xpath를 사용합니다. PHP를 통해 데이터를 검색 PHP

내 XML 파일의 예입니다

<root> 
<author>foo</author> 
<date>bar</date> 
</root> 

의 내 클라이언트는 단어 '팹'를 검색하려는 경우를 가정 해 보겠습니다. 문자 'f'와 'b'및 'a'가있는 모든 문자열을 반환하고 싶습니다. 그래서 출력은 다음과 같습니다

Foo 
bar 

저자의 이름은 예를 들어 제임스 웨스트 사이드를 수 있습니다.

<author>James Westside</author> 

그리고 사용자는 내 질문은 분명하다 희망

James Westside을 반환 jam 검색.

+0

당신은 내가 순간에 아무것도 시도하지 않은 –

+0

을 시도 것을 몇 가지 코드를 보여주십시오, 인스턴트 메신저는 XML 파일에서 문자열을 찾고 있기 때문에 무엇을해야하는지에 꽤 혼란이 아니라 요소의 값을 잡는 것보다 –

답변

1

PHP의 XMLReader 클래스를 사용해야합니다. XMLReader는 문서 스트림에서 앞으로 나아가는 각 노드에서 멈추는 커서 역할을합니다. 이 같은

뭔가 :

$search_phrase = 'fab'; 

$xml = new XMLReader; 
$xml->open('your-xml-file.xml'); 

while ($xml->read()) { 
    $node = $xml->expand(); 

    /* Looping through all elements in the XML */ 

    /* Test if the current node is a text node: */ 
    if ($node->nodeType == XMLReader::TEXT) { 

    /* Loop all letters in search_phrase */ 
    for ($i = 0; $i < strlen($search_phrase); $i++) { 

     /* Test if the text in the text node is matching any letter i search_phrase: */ 
     if (strpos($node->nodeValue, substr($search_phrase, $i, 1)) !== false) { 
     echo($node->nodeValue . "\n"); 
     break; 
     } 
    } 
    } 
} 
+0

이 시도했는데 뭔가 따옴표 같은 것으로되어있다. 구문 분석 오류가 발생한다. 구문 분석 오류 : 구문 오류, /var/www/other_projects/musify/search_output.php의 예기치 않은 T_STRING 온라인 'if ($ xml-> readString() 무언가) {' –

+0

if ($ xml-> readString() 뭔가 뭔가) 뭔가 readString() 후 오류가 발생했습니다 ... –

+0

안녕 마샬! 예제 코드를 좀 더 자세하게 만들었습니다. –

관련 문제