Open Journal Systems  3.3.0
test/website/utils.php
1 <?php
2 
7  function xml_pretty_printer($xml, $indent=0)
8 {
9  if (is_string($xml))
10  {
11  $xml = new SimpleXMLElement($xml);
12  echo '<pre>', htmlspecialchars('<?xml version="1.0" encoding="utf-8"?>');
13  xml_pretty_printer($xml);
14  echo '</pre>';
15  return;
16  }
17 
18  echo "\n", str_pad('', $indent, ' '), '&lt;<b>', $xml->getName(), '</b>';
19  foreach ($xml->attributes() as $k => $v)
20  {
21  if (substr($v, 0, 4) === 'http') {
22  $v = '<a href="' . $v . '">' . htmlspecialchars($v) . '</a>';
23  } else {
24  $v = htmlspecialchars($v);
25  }
26  echo ' ', $k, '="<i>' . $v . '</i>"';
27  }
28  echo '&gt;';
29  $any = false;
30  foreach ($xml->children() as $k => $v)
31  {
32  xml_pretty_printer($v, $indent + 4);
33  $any = true;
34  }
35  $val = (string)$xml;
36  if ('' != $xml)
37  {
38  if (substr($val, 0, 4) === 'http') {
39  $val = '<a href="' . $val . '">' . htmlspecialchars($val) . '</a>';
40  } else {
41  $val - htmlspecialchars($val);
42  }
43  echo ($any ? ("\n" . str_pad('', $indent + 4, ' ')) : ''),
44  '<i>', $val, '</i>';
45  }
46 
47  echo ($any ? ("\n" . str_pad('', $indent, ' ')) : ''),
48  '&lt;/<b>', $xml->getName(), '</b>&gt;';
49 }
50 
51 ?>