我正在尝试解析 R XML 中的一些 xml 文档--。数据框。我想要做的是展平 XML 树,以便每个孩子在数据框中获得一行。我也希望每一行都包含来自父级的数据
例子:
<xml>
<eventlist>
<event>
<ProcessIndex>1063</ProcessIndex>
<Time_of_Day>2:54:20.2959537 PM</Time_of_Day>
<Process_Name>chrome.exe</Process_Name>
<PID>12164</PID>
<Operation>ReadFile</Operation>
<Result>SUCCESS</Result>
<Detail>Offset: 1,684,224, Length: 256</Detail>
<stack>
<frame>
<depth>0</depth>
<address>0xfffff8038683667c</address>
<path>C:\WINDOWS\System32\drivers\FLTMGR.SYS</path>
<location>FltDecodeParameters + 0x1a6c</location>
</frame>
<frame>
<depth>1</depth>
<address>0xfffff80386834e13</address>
<path>C:\WINDOWS\System32\drivers\FLTMGR.SYS</path>
<location>FltDecodeParameters + 0x203</location>
</frame>
<frame>
<depth>3</depth>
<address>0x7ffea54ffac1</address>
<path>C:\WINDOWS\SYSTEM32\ntdll.dll</path>
<location>RtlUserThreadStart + 0x21</location>
</frame>
</stack>
</event>
<event>
<ProcessIndex>1063</ProcessIndex>
<Time_of_Day>2:54:20.2960270 PM</Time_of_Day>
<Process_Name>chrome.exe</Process_Name>
<PID>12164</PID>
<Operation>WriteFile</Operation>
<Result>SUCCESS</Result>
<Detail>Offset: 103,016, Length: 36</Detail>
<stack>
<frame>
<depth>0</depth>
<address>0xfffff8038683667c</address>
<path>C:\WINDOWS\System32\drivers\FLTMGR.SYS</path>
<location>FltDecodeParameters + 0x1a6c</location>
</frame>
<frame>
<depth>1</depth>
<address>0xfffff80386834e13</address>
<path>C:\WINDOWS\System32\drivers\FLTMGR.SYS</path>
<location>FltDecodeParameters + 0x203</location>
</frame>
<frame>
<depth>26</depth>
<address>0x7ffea54ffac1</address>
<path>C:\WINDOWS\SYSTEM32\ntdll.dll</path>
<location>RtlUserThreadStart + 0x21</location>
</frame>
</stack>
</event>
</eventlist>
</xml>
我想得到的结果是
ProcesnIndex Time_of_day Proces_Name PID Operation Result depth address path location
1063 2:54:20 chrome.exe 12164 ReadFile SUCCESS 0 0xfffff.. C:\WINDOWS\System32\driv... FltDecodeParameters + 0x1a6c
1063 2:54:20 chrome.exe 12164 ReadFile SUCCESS 1 0xfffff.. C:\WINDOWS\System32\driv... FltDecodeParameters + 0x203
1063 2:54:20 chrome.exe 12164 ReadFile SUCCESS 2 0xfffff.. C:\WINDOWS\System32\driv... tlUserThreadStart + 0x21
1063 2:54:20 chrome.exe 12164 WriteFile SUCCESS 0 0xfffff.. C:\WINDOWS\System32\driv... FltDecodeParameters + 0x1a6c
1063 2:54:20 chrome.exe 12164 WriteFile SUCCESS 1 0xfffff.. C:\WINDOWS\System32\driv... FltDecodeParameters + 0x203
1063 2:54:20 chrome.exe 12164 WriteFile SUCCESS 2 0xfffff.. C:\WINDOWS\System32\driv... RtlUserThreadStart + 0x21
我尝试使用 XML 包和 xmlToDataFrame
xmldf_events_stack <- xmlToDataFrame(nodes=getNodeSet(data_xml_2,"//eventlist/event/stack/frame"))
但这只会让我在没有父数据的情况下展平框架。此外,如果我尝试将事件数据解析为数据框,则所有 XML 标记都会从框架字段中删除,因此我以后无法解析它。
任何正确方向的帮助或指导将不胜感激