# XML to Glide sheet

**URL:** <https://community.glideapps.com/t/xml-to-glide-sheet/34287>\
**Category:** Ask for Help\
**Created:** [November 9, 2021, 7:54pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287 "2021-11-09T19:54:13Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 9, 2021, 7:54pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/1 "2021-11-09T19:54:13Z")

</div>

Is it possible now after the update to get data from a XML and based on a true to generate some URL.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/c/7/c7c1fcd2d96610cf07458e183cd32c1b9a13427b.png)

OK lets give a detail Example.  
I have a NVR Camera system, And i want to show the user all there cams based if its online and working.  
So instance 1. would be to find a the ID Number and if it has a true in it. then convert a url from [http://myURL/ISAPI/ContentMgmt/StreamingProxy/channels](http://myURL/ISAPI/ContentMgmt/StreamingProxy/channels) to [http://myURL//ISAPI/ContentMgmt/StreamingProxy/channels/101/picture?.jpg](http://myURL//ISAPI/ContentMgmt/StreamingProxy/channels/101/picture?.jpg)

These links should be either by col Image 1,2,3,4 or row 1,2,3,4

Would this be possible to do in glide?

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/0/4/042e3a2b94b968351cfa429200065b1d67a6e827.png)

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 9, 2021, 9:59pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/2 "2021-11-09T21:59:14Z")

</div>

Hola @abe.sherman

Let me understand your request… do you want to show or handle on your APP the XML data generated by your NVR?

If so, I think it’s possible. Due to XML is the JSON’s father I think what you try to do can be done by using an API.

I found this quickly that looks easy to use: [GitHub - factmaven/xml-to-json: Simple API that converts dynamic XML feeds to JSON through a URL or pasting the raw XML data. Made 100% in PHP.](https://github.com/factmaven/xml-to-json)

Its syntax is:

> [https://api.factmaven.com/xml-to-json?xml={Your\_XML\_URL}](https://api.factmaven.com/xml-to-json?xml=%7BYour_XML_URL%7D)

Of course, you must use some Glide’s API plugin later to handle JSON payload received from XML API and organize that data in your tables/sheets.

I hope it helps.

Saludos

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 9, 2021, 10:18pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/3 "2021-11-09T22:18:53Z")

</div>

Thank you yes that’s what i am looking for. I am testing it first with the link you gave me. Of course will implement in in glide.

Now how do i get a value from the Query  
Lets say based on the screenshot

StreamingChannelList.StreamingChannel.id

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/5/1/51c0ad603940ebfbecdc43859644355ad1ff65c9.png)

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/5/e/5ef54e82fb42458c148b6737e4d062b8bcba6e8f.png)

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 9, 2021, 10:22pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/4 "2021-11-09T22:22:47Z")

</div>

Hi again,

Write here your XML URL to test it and tell you the right syntax to be used in **JQ Query** box

Bye

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 9, 2021, 10:30pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/5 "2021-11-09T22:30:20Z")

</div>

I am trying the following for test

```auto
{"StreamingChannelList":

	{"version":"1.0",
	"StreamingChannel":[
		{"version":"1.0",
		"id":"101",
		"channelName":"101",
		"enabled":"true",
		"Transport":{"ControlProtocolList":{"ControlProtocol":{"streamingTransport":"RTSP"}}},
		"Video":{"enabled":"true",
		"dynVideoInputChannelID":"1",
		"videoCodecType":"H.264",
		"videoResolutionWidth":"2560",
		"videoResolutionHeight":"1440",
		"videoQualityControlType":"VBR",
		"fixedQuality":"60",
		"vbrUpperCap":"6144",
		"vbrLowerCap":"32",
		"maxFrameRate":"2500",
		"snapShotImageType":"JPEG"},
		
		"Audio":{"enabled":"true",
		"audioInputChannelID":"1",
		"audioCompressionType":"UNKOWN"}},
		{"version":"1.0","id":"102","channelName":"102","enabled":"true",
		"Transport":{"ControlProtocolList":{"ControlProtocol":{"streamingTransport":"RTSP"}}},
		"Video":{"enabled":"true",
		"dynVideoInputChannelID":"1",
		"videoCodecType":"H.264",
		"videoResolutionWidth":"720",
		"videoResolutionHeight":"576",
		"videoQualityControlType":"VBR",
		"fixedQuality":"60",
		"vbrUpperCap":"1024",
		"vbrLowerCap":"32",
		"maxFrameRate":"2500",
		"snapShotImageType":"JPEG"},
		"Audio":{"enabled":"true",
		"audioInputChannelID":"1",
		"audioCompressionType":"UNKOWN"}},
		
		{"version":"1.0",
		"id":"201","channelName":"201",
		"enabled":"true",
		"Transport":{"ControlProtocolList":{"ControlProtocol":{"streamingTransport":"RTSP"}}},
		"Video":{"enabled":"true",
		"dynVideoInputChannelID":"2",
		"videoCodecType":"H.264",
		"videoResolutionWidth":"2560",

```

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 9, 2021, 11:06pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/6 "2021-11-09T23:06:18Z")

</div>

Sorry friend but I can’t see your JSON data fine using your URL

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/c/8/c80e89dfccbaf5de47a845b537bea8a467e69c2f.png)

Send me a DM to avoid security problems, I understand!

Saludos.

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 9, 2021, 11:13pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/7 "2021-11-09T23:13:47Z")

</div>

I couldn’t provide the URL for security reasons as it has a user name and password on it. My link looked something like this http:User@password:IP/ISAP So i uploded the XML on my website and now go ahead and try it.

[https://api.factmaven.com/xml-to-json/?xml=https://visicllc.com/temptest/channels.xml](https://api.factmaven.com/xml-to-json/?xml=https://visicllc.com/temptest/channels.xml)

Also I cleaned up the JSON above for you so it would be easyer to read.  
I wonder if this is even valid StreamingChannelList.StreamingChannel[0].id in glide.  
or if the converting file is not right.

Thank you @gvalero

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 9, 2021, 11:52pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/8 "2021-11-09T23:52:48Z")

</div>

Ok, I got it!

If you want all IDs, use this:

`.StreamingChannelList.StreamingChannel[].id`

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/9/b9ec458fbb933187daf98123c8aec28bdec4507d.png)

Instead, if you want 1st ID:  
`.StreamingChannelList.StreamingChannel[0].id`

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/a/dab6c5f924a037caeb30a5bbd09ffb8edfef7021.png)

.  
.  
.

The 4th ID would be::  
`.StreamingChannelList.StreamingChannel[3].id`

BTW: What brand/model is your NVR? I like it. 😅

Feliz día @abe.sherman

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 9, 2021, 11:56pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/9 "2021-11-09T23:56:25Z")

</div>

> [@gvalero](#):
>
> .StreamingChannelList.StreamingChannel.id

I think hikvishion and similar brands allow the XML thingy but you might need to enable it.

Here is a list of some of the models i use.

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/2/b255b4e59b8c4fe9968eff5ca52f513062564be1.png)

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 10, 2021, 12:03am UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/10 "2021-11-10T00:03:38Z")

</div>

Thanks, I got 2 new Dahua XVR DH-XVR1B16 and will check if they support this feature.

🤜 🤛

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 10, 2021, 12:45am UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/11 "2021-11-10T00:45:30Z")

</div>

Btw do we have a wild card for the StreamingChanels[\*] yet to be used when looking instead of doing the template?

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/f/0/f036ad7472051aab39d771ba6a8cceb31a3b1acc.png)

Wow it gets heavy on the sheet. I need a better way to do the filters so i can get the results i need

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 10, 2021, 2:27pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/12 "2021-11-10T14:27:08Z")

</div>

This is happening to some of my links. When i added that link without the API link into the browser it works. However when i use it with the API this is what i get.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/0/4/04073a74b02b5ea558d099a87b0aba11338405f3.png)

BTW have a look how it looks on the once that do work it looks awesome.

 ![WhatsApp Image 2021-11-10 at 9.25.24 AM](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/0/303e5c34f9e0b86c536966a93cf997fa6efea617.jpeg)

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 10, 2021, 3:08pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/13 "2021-11-10T15:08:54Z")

</div>

Cool!!

Those PICs from your cams (showed in your Inline List) are old or were sent by your NVR by a request?

I have tried and looked for the way to put the cam’s streaming on the APP but I has had no luck.  
There is another technology beyond MS ActiveX (what I know) which I ignore to see the cams in real-time so far.

Saludos!

---

<div class="post-metadata">

**Author:** ![abe.sherman](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/abe.sherman/32/11260_2.png) [@abe.sherman](https://community.glideapps.com/u/abe.sherman)\
**Post date:** [November 10, 2021, 3:19pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/14 "2021-11-10T15:19:57Z")

</div>

Its a on load picture on every refresh. I can help you privately if after the instructions i give you don’t work. you can reach out to me on discord here. [Glide Community](https://discord.gg/mTJ5cDP3Ws)

Now depending on your NVR as some are slightly different do the fowling.

Configurations \> Security \> Authentication Change to digest/basic (that should let you use the API)  
Configurations \> Security \> Security Service \> Tick the enable picture URL (This is in some NVR)

also another note i want to mention that sometimes the link is different on some NVR and it wont be. `/ISAPI/ContentMgmt/StreamingProxy/channels` this also depends on the channels being used.

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/0/4/043e8768c7493d3da22c59bd610a4c72aba79a13.png) ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/d/dd1978af4f1a19a95e397c6f05ad3bcf07f6ea2f.png)

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [November 10, 2021, 3:27pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/15 "2021-11-10T15:27:06Z")

</div>

Uffff … double cool! 🤣

Let me finish some pending jobs and I will try your tip.

We keep in touch.

Gracias Abe!

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/system/32/53398_2.png) [@system](https://community.glideapps.com/u/system)\
**Post date:** [November 11, 2021, 3:27pm UTC](https://community.glideapps.com/t/xml-to-glide-sheet/34287/16 "2021-11-11T15:27:44Z")

</div>

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.
