Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobieranie wartości z xml(PHP/SimpleXML)
Forum PHP.pl > Forum > XML, AJAX
oval
Witam,

Nie mogę sobie poradzić z wylistowaniem wartości z windowsowego dziennika zdarzeń... sam xml wygląda tak:

  1. <Events>
  2. <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  3. <System>
  4. <Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}"/>
  5. <EventID>12</EventID>
  6. <Version>0</Version>
  7. <Level>4</Level>
  8. <Task>0</Task>
  9. <Opcode>0</Opcode>
  10. <Keywords>0x8000000000000000</Keywords>
  11. <TimeCreated SystemTime="2015-10-28T06:08:19.593600100Z"/>
  12. <EventRecordID>17505</EventRecordID>
  13. <Correlation/>
  14. <Execution ProcessID="4" ThreadID="8"/>
  15. <Channel>System</Channel>
  16. <Computer>oval-pc</Computer>
  17. <Security UserID="S-1-5-18"/>
  18. </System>
  19. <EventData>
  20. <Data Name="MajorVersion">6</Data>
  21. <Data Name="MinorVersion">1</Data>
  22. <Data Name="BuildVersion">7601</Data>
  23. <Data Name="QfeVersion">19018</Data>
  24. <Data Name="ServiceVersion">1</Data>
  25. <Data Name="BootMode">0</Data>
  26. <Data Name="StartTime">2015-10-28T06:08:19.125599300Z</Data>
  27. </EventData>
  28. </Event>
  29. <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  30. <System>
  31. <Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}"/>
  32. <EventID>13</EventID>
  33. <Version>0</Version>
  34. <Level>4</Level>
  35. <Task>0</Task>
  36. <Opcode>0</Opcode>
  37. <Keywords>0x8000000000000000</Keywords>
  38. <TimeCreated SystemTime="2015-10-27T21:02:01.566286900Z"/>
  39. <EventRecordID>17504</EventRecordID>
  40. <Correlation/>
  41. <Execution ProcessID="4" ThreadID="5844"/>
  42. <Channel>System</Channel>
  43. <Computer>oval-pc</Computer>
  44. <Security/>
  45. </System>
  46. <EventData>
  47. <Data Name="StopTime">2015-10-27T21:02:01.566286900Z</Data>
  48. </EventData>
  49. </Event>
  50. <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  51. <System>
  52. <Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}"/>
  53. <EventID>12</EventID>
  54. <Version>0</Version>
  55. <Level>4</Level>
  56. <Task>0</Task>
  57. <Opcode>0</Opcode>
  58. <Keywords>0x8000000000000000</Keywords>
  59. <TimeCreated SystemTime="2015-10-27T06:08:17.609200100Z"/>
  60. <EventRecordID>17232</EventRecordID>
  61. <Correlation/>
  62. <Execution ProcessID="4" ThreadID="8"/>
  63. <Channel>System</Channel>
  64. <Computer>oval-pc</Computer>
  65. <Security UserID="S-1-5-18"/>
  66. </System>
  67. <EventData>
  68. <Data Name="MajorVersion">6</Data>
  69. <Data Name="MinorVersion">1</Data>
  70. <Data Name="BuildVersion">7601</Data>
  71. <Data Name="QfeVersion">19018</Data>
  72. <Data Name="ServiceVersion">1</Data>
  73. <Data Name="BootMode">0</Data>
  74. <Data Name="StartTime">2015-10-27T06:08:17.125599300Z</Data>
  75. </EventData>
  76. </Event>
  77. </Events>


Potrzebuję tylko dane z czasami restartów, więc linijki z wpisem <Data Name="StartTime">2015-10-27T06:08:17.125599300Z</Data>
Próbowałem w ten sposób wyświetlać dane:

  1.  
  2. $xml = new SimpleXMLElement(file_get_contents('logrestartow.xml'));
  3. echo $xml->Event->StartTime;
  4. echo $xml->Events->Event->EventData>StartTime;
  5. echo $xml->EventData>StartTime;


I za każdym razem wywala pusty wynik lub alert, że któryś z węzłów nie jest obiektem.
Print_r pokazuje bardzo ładnie całą tablice z xml-em. Problem leży jedynie w tym jak się dobrać do jej wnętrza.

Pozdrawiam,
Scalak
Jak XML to najlepiej XPath w SimpleXML'u masz stosowną funkcję

//*[@Name='StartTime']/node()

Pozdrawiam
Maciej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.