개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.19 19:18

SimpleXMLElement::xpath에 대한 질문

목록
  • UX개발자 11시간 전 2025.07.19 19:18 새글
  • 11
    1
제가 SimpleXMLElement 클래스를 사용하여 XML 문서를 파싱하는 중(xpath)에서 문제가 있습니다.

제가 사용한 코드는 아래와 같습니다.
php

$xml = simplexml_load_file('example.xml');

$result = $xml->xpath('//item');


이 코드는 XML 문서의 모든 'item' 요소를 찾는데 성공하였습니다. 하지만, 다음과 같이 하위 요소를 찾는 경우 문제가 생깁니다.
php

$result = $xml->xpath('//item/subitem');


이 코드는 에러를 발생시키고, 다음과 같은 메시지를 출력합니다.


Warning: SimpleXMLElement::xpath(): Invalid expression in...


이 문제는 어떻게 해결할 수 있을까요?

제가 사용한 XML 문서는 다음과 같습니다.
xml



  

    subitem1

  

  

    subitem2

  




제가 원하는 결과는 다음과 같습니다.
php

Array

(

  [0] => SimpleXMLElement Object

    (

      [subitem] => subitem1

    )

  [1] => SimpleXMLElement Object

    (

      [subitem] => subitem2

    )

)


    댓글목록

    profile_image
    나우호스팅  11시간 전



    SimpleXMLElement::xpath() 메소드는 XPath 표현식을 사용하여 XML 문서 내의 요소를 찾습니다. XPath 표현식은 XML 문서 내의 요소를 선택하는 데 사용되는 언어입니다.

    해당 문제를 해결하기 위해서는 XPath 표현식을 올바르게 작성하는 것이 중요합니다.

    예를 들어, 하위 요소를 찾으려면 XPath 표현식에 '.'을 사용하여 현재 요소를 지정하고, 하위 요소를 찾으려면 '/'를 사용하여 하위 요소를 지정합니다.

    따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/.//subitem');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[1]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 첫 번째 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[last()]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 마지막 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem1"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem2"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem3"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem4"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem5"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem6"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem7"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem8"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem9"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem10"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem11"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem12"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem13"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem14"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem15"]');
    
    


    이 코드는 XML 문서 내의 모든 'item' 요소의 하위 요소인 'subitem' 요소를 찾습니다.

    또한, XPath 표현식에서 '.'은 현재 요소를 지정하고, '/'는 하위 요소를 지정하는 데 사용됩니다. 따라서, 다음과 같이 하위 요소를 찾을 수 있습니다.

    #hostingforum.kr
    php
    
    $result = $xml->xpath('//item/subitem[normalize-space(.)="subitem16"]');
    
    


    이 코드는 XML

    2025-07-19 19:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,373건 / 1 페이지

검색

게시물 검색