문제

        $html = new DOMDocument();
        @$html->loadHtmlFile($url);
        $xpath = new DOMXPath( $html );
        //Query to pull all reviews on the page
        $q="//div[starts-with(@id,empReview_)]/h3/meta[1]/@content";
        $nodelist = $xpath->query($q);

        foreach ($nodelist as $n){
            echo $n->nodeValue;
            echo"<br><br>";

        }

Is the query I'm attempting to run on the following XML:

<div id="empReview_2055942" class="employerReview" itemscope="" itemtype="http://schema.org/Review">
    <h2 class="summary">
    <h3 class="review-microdata-heading">
        <span class="gdRatingStars"> </span>
        Former 
        <span itemprop="author">IT Engineer Intern in Santa Clarita, CA</span>
        <meta content="4" itemprop="reviewRating"/>

It goes right to the element when using Firepath, but is not echoing the value via my query in php.

Any help would be greatly appreciated.

올바른 솔루션이 없습니다

다른 팁

Your xpath query is wrong, it should be:

$q="//div[starts-with(@id,empReview_)]/h2/h3/meta[1]/@content";

(You are missing 'h2'). Your code should look like this...

$html = new DOMDocument();

$html->loadHtml('
  <div id="empReview_2055942" class="employerReview" itemscope="" itemtype="http://schema.org/Review">
      <h2 class="summary">
      <h3 class="review-microdata-heading">
          <span class="gdRatingStars"> </span>
          Former 
          <span itemprop="author">IT Engineer Intern in Santa Clarita, CA</span>
          <meta content="4" itemprop="reviewRating"/>
      </h3> <!-- presumably your input has closing tags -->
      </h2>
  </div>
  <div id="empReview_2055947" class="employerReview" itemscope="" itemtype="http://schema.org/Review">
      <h2 class="summary">
      <h3 class="review-microdata-heading">
          <span class="gdRatingStars"> </span>
          Former 
          <span itemprop="author">Some Other Random Thing</span>
          <meta content="7" itemprop="reviewRating"/>
      </h3>
      </h2>
  </div>
');

$xpath = new DOMXPath( $html );
//Query to pull all reviews on the page
$q="//div[starts-with(@id,empReview_)]/h2/h3/meta[1]/@content";
$nodelist = $xpath->query($q);

foreach ($nodelist as $n){
  echo $n->nodeValue;
  echo"<br><br>\n";
}

I get the following output:

4<br><br>
7<br><br>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top