Hello in this python programming tutorial we are going to take a look at parsing an XML file. So I've got an example XML folder created here which has a root node called vehicles and inside it has car tags and then it has a attribute, he can have more than one attribute and you can have more you know, nested tags elements. But you know, just to keep it simple and just to demonstrate how to parse XML files for just you know, just keep it more once you understand the basics of what we do in this video. Everything should be okay and then you know, within calm, we got a model element and I have just some information the speed element as well. So let's get started with this. Okay, so the start shopping some gentlemen need to reopen the fight.
Tappan just reopen it. Okay, so here we go. So now we're going forth and what the x now the SI x module, what you might come across on lines, if you looked at all the guides or tutorials, is people use in basically external modules not like something that's built into Python. And yet there are other great, you know, code files that you can get to help you pass files and nails are really, really amazing. But you can do quite a lot with the built in stuff as well. Okay, so we're basically going to create a class that will handle all of the XML loaded, so we're going to call the XML and lap so it's appropriately named e f, XML dot F dot content handler.
Now, we're going to define a method and this is going to speed Unit method. Again, if you don't quite understand what we're doing with a class, though this method we've already covered it with in the class classes section of this series, so feel free to go back and check that right. So again on the self keyword as well, we've already explained. So first of all, we're going to set up current data. And this will allow us to store the current data that we're processing when parsing the file and that will then be assigned to one of these variables. So the selfie of yourself the models up to speed, obviously, if you have more attributes, more tags, you can easily just extend this as you need to.
So now we're going to do def start element. So this is you know, when the element you know, first begins current data and the data is going to equal tag. If the tag is equal to car, then we're going to proceed accordingly. Which is basically you know these here. Obviously again, if you have different types different names, you can easily modify this code accordingly. So what we're going to do is this quinto we are going to just call just so we know we've got a new element.
Now we're going to create a variable name, and we're going to get the name from Yeah. quotation marks one day Okay, so that's the start element method, the crazy indentation. And now we're going to do end and element tag. And dot current data equals model. So this is gonna allow us to actually go through the tags within each of the, you know, basically each sub tag. So if it equals model, then we're going to do something accordingly which can print something out saying, you know, this is the model, but you can obviously change this up or add more some cool methods that sort of dot model dot model.
Now we're gonna basically do LC for if it equals data equals speed. We are going to do Quint speed and now self dot speed, like so. And then finally, once we have finished with the check in, we're going to set the current data back to an empty string, so we don't get issues. So do that. And now what we're going to do is create another method add a bunch of empty lines so death in the public characters. So when a character is detected in your file, this will be called.
Now, we're going to do dot current data equals model missing here self dot model equals the content. So we're just getting there and applying it to this now, that should include as well. Mr. Good scrolled up tends to show you for now, LS dot current are looking at this and this is sort of getting confused with the LSS that I was tossing around. It's okay. It looks okay. Equals no sorry contents not mines function calls content for the method now.
So what we're going to do is give the school name he calls me basically allows to check for the foil call for when a lot of foreign parser equals XML in school Don't make good stuff. Now we are going to set the feature XML namespaces comma zero. And now we are going to fix object of it now we are going to also set content and this is some default stuff they will need to have in there. And now finally we are going to know the fight pause. So pause, pause before you location It's not for me, the location is in the same directory as this Python file. If it isn't, then make sure you just D directory accordingly.
Save that, and run. So hopefully, it should pass the fall and print everything out. And that's it. So all of that code for this, obviously, if we were to send this, I'll show you that right now. So Copy that. And change this to true for home.
My name model is the same surname, and the speed I would put in my car gave me six. So you can see that doesn't exist here. But if I were to run it, it gets that well, so it is that simple to pass fall and you can extend this class as you need to, and provide the appropriate functionality depending on your application needs. So that's it. Thanks for watching our photo seen you in the next awesome Python video.