그래서,이 해결되었다 내 앞의 질문에 대한 후속 질문은 여기에 그 링크의 수 있습니다 : 해결하기위한 @RomanPerekhrest에 using data from child element to select data in other element using simplexml in php속성은 SimpleXML을의 PHP에 의해로드 할 수 있습니다
감사 이.
나는 나의 XML 파일을 읽어 SimpleXML을을 사용하여 PHP 코드의 조각이
<?php
$xml = simplexml_load_file('../uploads/reports/report.xml');
$hits = $xml->xpath("results/hits/@rule_id");
$ruleIds = array_map(function($v){ // getting search path for each needed rule
return "profile_info/rules/rule[@id='". (string)$v. "']";
}, $hits);
foreach ($xml->xpath(implode(" | ", $ruleIds)) as $rule) {
echo '<div id="name">'. $rule->display_name .'</div>'.
'<div id="comment">'. $rule->display_comment .'</div>';
}
?>
다시이와 주셔서 @RomanPerekhrest에 감사합니다.
이 코드 조각 내 이전의 질문에 내 문제를 설명하기 위해 만들어 내 단순화 된 XML 파일로 잘 작동하지만 내가 그것을 적용 할 때, 렌더링하지 않는 것 같습니다.
내 루트 요소에 내 XML을로드 할 수 없습니다 원인이 일부의 xmlns 속성이 왜, 내가 이유를 발견했습니다. 이러한 특성을 수동으로 제거하면 모든 것이 예상대로 작동합니다. (I하지 않습니다 목록 전체 XML 문서, 그것은 긴 8500 선 이후) 가 여기에 속성 루트 요소입니다 :
<report xsi:schemaLocation="http://www.callassoftware.com/namespace/pi4 pi4_results_schema.xsd" xmlns="http://www.callassoftware.com/namespace/pi4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
내가 PHP에서 우회하는 방법이 필요합니다. 이 XML 파일은 다른 소프트웨어에서 생성되고이 세대에서는 설정이 부족하므로이 속성이없는 xml 파일을 만들 수는 없습니다.
감사
는
addreses :'http://www.callassoftware.com/namespace/pi4 pi4_results_schema.xsd'와'에 http : // www.callassoftware.com/공간/pi4'가 잘못 내가 발견 무엇 그' – RomanPerekhrest
을 found'하지 반환 aswel, 내가 –
@RomanPerekhrest 네임 스페이스 식별자가 실제로 어디 해결하지 않아도이 문제를 접근하는 방법을 정말 확실하지 않다, 내 전체 XML 읽기에 실패 만들고있다. 그것들은 같은 이름을 사용하는 사람들을 모두 막을 수있는 방법 인 URI입니다. – IMSoP