2011-02-10 9 views
0

XML 파일에서 쿼리 문자열을 사용할 수 있습니까?XML 파일의 쿼리 문자열 사용

나는 그것이 가능했다 그리고 나는이 유용 할 수있는 방법이 많이 생각할 수있는이 http://site.com/file.xml?tag=howdoiusethis

같은 URL을 본 생각하지 않았다, 그러나 그것은 나에게 새로운 개념의 내가 아니다 이 태그/쿼리 문자열을 문서에서 사용하는 방법에 대한 정보를 찾습니다. 이상적으로는 주어진 태그/쿼리 문자열에 대해 문서에서 읽을 수있는 XML을 필터링하는 데 사용하고 싶습니다.

감사

+0

브라우저가 마크 업에서 해당 태그로 스크롤 했습니까? –

+1

'http : // site.com/file.xml'은 어떤 종류의 파일도 아니며 URL입니다. – skaffman

+0

서버에있는 파일 ................ – Mike

답변

2

는 XML 파일 비록, 그것은 가장 가능성이

(그렇지 않으면 핸들러, htaccess로 지정 (예 : AddType application/x-httpd-php .xml), 또는 중 하나를 통해) 서버 측 언어에 의해 분석되고있어 파일입니다 서버가 XML 형식의 파일 (이 경우)을 파서를 통과해야한다는 것을 알고있는 한 서버 측 언어 (예 : PHP, ASP)가 파일을 처리하고 유효한 XMl 문서를 출력 할 수 있습니다 (쿼리를 사용하여 문자열), 일반 파일 인 것처럼 보입니다.

위의 예는 .rss 파일입니다. 그것들은 고전적인 확장 기능을 가진 동적 인 내용이지만 서버 쪽에서는 정보가 사용 가능해질 때 그 내용을 렌더링하고 있습니다.


사례 적 사례. 서버에서 PHP를 실행한다고 가정 해보십시오. XML 피드가 들어있는 "feeds"라는 디렉토리 (/ public_html/feeds /)가 있습니다. 그 디렉토리 내에서 htaccess로 라는 파일을 생성하고이 PHP 처리 엔진에 .XML 확장자를 보낼 필요가 아파치 이야기 : 당신이 stories.xml이 같은 디렉토리에

AddType application/x-httpd-php .xml 

다음 데이터베이스 정보를 기반으로 컨텐츠 목록을 생성하며 모든 쿼리는 항상 서버에서 최신 정보를 렌더링합니다.

<?php 
    // this tells the client what kind of document this is 
    header('Content-Type: application/xml'); 

    // pseudo database connection 
    include_once('db.php'); 

    // setup the header: 
    echo '<?xml version="1.0" encoding="utf-8"><stories>'; 

    // pseudo story-gatherer 
    $stories = Stories::Fetch($_GET['filter_by']); // use of a GET variable 
    foreach ($stories as $story){ 
    echo '<story>' 
      .'<author>'.$story['author'].'</author>' 
      .'<title>'.$story['title'].'</title>' 
      .'<date>'.$story['date'].'</date>' 
     .'</story>'; 
    } 

    // close the file 
    echo '</stories>'; 
?> 

을 그리고 지금은 .XML으로 끝나고 (http://mysite.com/feeds/stories.xml?filter_by=Brad+Christie를 통해 액세스)를 GET 변수에 의해 필터링 된 파일이 :이 파일은 다음과 같은 것을 볼 수 있었다. 사용자에게는 다음과 같이 보일뿐입니다.

<?xml version="1.0" encoding="utf-8"> 
<stories> 
    <story> 
    <author>Brad Christie</author> 
    <title>Making .XML render dynamic content</title> 
    <date>2011-02-10 12:52:00</date> 
    </story> 
</stories> 

매우 원시적 인 예제이지만 적절한 코딩 스타일이 아닌 개념을 보여줍니다. ;-)

+0

좋은 예. 고마워. 나는 완전한 기능을 갖춘 예제를 찾고이 페이지에 링크를 게시하려고 시도 할 것입니다. – Mike

0

주어진 예제에서는 XPath 또는 간단한 XML 처리 및 검색을 사용하여 주어진 파일을 쿼리하는 일부 컨트롤러에이 요청을 위임하는 URL 재 작성 메커니즘이 있습니다.

당신은 여기에서 시작하려는 것 : http://www.w3schools.com/xpath/xpath_intro.asp

을 그리고 당신은 프로그래밍 언어를 선택하기위한 다음의 XPath 처리 도구를 찾을 수 있습니다.

0

아니요, tag 변수는 XML에서 사용할 수 없습니다. XML이 데이터 형식 일 뿐이므로 처리 할 수 ​​없습니다. 을 수행하지 않으려면을 단독으로 수행하십시오.

tag의 존재와 그 값은 HTTP 요청 GET /file.xml?tag=howdoiusethis에 대한 응답을 구성 할 때 웹 서버에서 사용할 수 있습니다. 그 대답의 부분 인 .xml은 클라이언트 (브라우저)에게 XML이 다시 전송된다는 단서이지만 서버에는 file.xml이 필요하지 않습니다. 서버는 사용자가 원하는 정보 (예 : /file.xml)를 가지고 있으며 taghowdoiusethis으로 설정됩니다.