Forum Discussion

lpoulin's avatar
lpoulin
Copper Contributor
May 09, 2019
Solved

ALA XML Query

Hello, I've added a custom log to ALA and I need some assistance to write a query for it.  The file is in XML format. Here is a sample of my PCINFO.XML file: <PCInformation> <HardwareReport> <Pi...
  • CliveWatson's avatar
    CliveWatson
    May 15, 2019

    lpoulin 

     

    How about this?

    Link

     

    let dummyData = datatable(Date:datetime, Computer:string, RawData:string, Type:string)
    [
        datetime(now) , "Server0001" ,"<PinPad>","PCinfo_CL",
        datetime(now) , "Server0001" ,"11111","PCinfo_CL",
        datetime(now) , "Server0001" ,"22222</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0001" ,"33333</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0001" ,"44444</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0001" ,"<serialnumber>00000/1111111/3333333</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0001" ,"55555</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0002" ,"<PinPad>","PCinfo_CL",
        datetime(now) , "Server0002" ,"11111","PCinfo_CL",
        datetime(now) , "Server0002" ,"22222</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0002" ,"33333</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0002" ,"44444</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0002" ,"<serialnumber>22222/1111111/3333333</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0002" ,"44444</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0003" ,"<PinPad>","PCinfo_CL",
        datetime(now) , "Server0003" ,"11111","PCinfo_CL",
        datetime(now) , "Server0003" ,"222222</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0003" ,"333333</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0003" ,"44444</SerialNumber>","PCinfo_CL",
        datetime(now) , "Server0003" ,"<serialnumber>33333/1111111/3333333</SerialNumber>","PCinfo_CL",
    ];
    dummyData
    | serialize 
    | extend theSerialRow = next(RawData,5)
    | parse theSerialRow with * "<serialnumber>" intSerialNumber "</SerialNumber>" *
    | extend hit = iif(RawData has "<PinPad>", strcat(RawData,"",intSerialNumber),"false")
    | where hit !="false"
    | summarize by hit, Computer
    

    Which looks like, this on your system (I think)

    PCINFO_CL
    | serialize 
    | extend theSerialRow = next(RawData,5)
    | parse theSerialRow with * "<serialnumber>" intSerialNumber "</SerialNumber>" *
    | extend hit = iif(RawData has "<PinPad>", strcat(RawData,"",intSerialNumber),"false")
    | where hit !="false"
    | summarize by hit, Computer
    

     

    Output is like this:

     
    <PinPad>00000/1111111/3333333 Server0001  
    <PinPad>22222/1111111/3333333 Server0002  
    <PinPad>33333/1111111/3333333 Server0003

Resources