개발! 딱 깔끔하고 센스있게!

PHP-SOAP 응답 중 데이터 해석 본문

개발 스크랩 메모/PHP

PHP-SOAP 응답 중 데이터 해석

렉사이 2020. 12. 27. 22:40

W3 인증 프로그램 API 사용하고 있습니다.

이런 호응을 받았습니다.

    http://myurl.com/ http://validator.w3.org/ -//W3C//DTD XHTML 1.1//EN utf-8 false  1   7 80 character data is not allowed here 63      ...    0       

어떻게 중간에서 약간의 변수를 추출합니까?

유효성, 오류 계수가 필요합니다.

가능하다면 오류 목록에서: 줄, 열, 메시지:)

간단한 방법이 있나요?

대답

simplexml 을 사용하여 문자열을 XML 문자열에 simplexmlement 에 복사한 다음 XPath 검색 속성을 찾을 수 있습니다.

XPath 사용하기 전에 registerXPathNamespace 에 관련된 이름의 공간을 등록하는 것이 중요하다.

$xml = file_get_contents('example.xml'); // $xml should be the XML source string $doc = simplexml_load_string($xml); $doc->registerXPathNamespace('m', 'http://www.w3.org/2005/10/markup-validator'); $nodes = $doc->xpath('//m:markupvalidationresponse/m:validity'); $validity = strval($nodes[0]); echo 'is valid: ', $validity, "\n"; $nodes = $doc->xpath('//m:markupvalidationresponse/m:errors/m:errorcount'); $errorcount = strval($nodes[0]); echo 'total errors: ', $errorcount, "\n"; $nodes = $doc->xpath('//m:markupvalidationresponse/m:errors/m:errorlist/m:error'); foreach ($nodes as $node) { $nodes = $node->xpath('m:line'); $line = strval($nodes[0]); $nodes = $node->xpath('m:col'); $col = strval($nodes[0]); $nodes = $node->xpath('m:message'); $message = strval($nodes[0]); echo 'line: ', $line, ', column: ', $col, ' message: ', $message, "\n"; } 
Comments