Search code examples
xmlvbaxmldocument

Visual Basic Parse Xml File Using XmlDocument


I have xml file with this codes:

<?xml version='1.0' encoding='utf-8'?>
<widget id="PACKAGE_NAME" version="PROJECT_VERSION" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
    <name>PROJECT_NAME</name>
    <preference name="android-minSdkVersion" value="MIN_SDK" />
    <preference name="android-versionCode" value="VERSION_CODE" />
    <preference name="android-installLocation" value="INSTALL" />
    <preference name="android-targetSdkVersion" value="TARGET_SDK" />
    <preference name="orientation" value="ORIENTATION" />
    <preference name="fullscreen" value="FULLSCREEN" />
</widget>

And i have this variables:

Dim PackageName, ProjectName, ProjectVersion, VersionCode, MinSdk, TargetSdk, InstallLocation, Orientation, FullScreen As String

I use this code to get ProjectName, PackageName and ProjectVersion:

Dim doc as XmlDocument = new XmlDocument()
doc.Load("config.xml")
Dim root As XmlElement = doc.DocumentElement
PackageName = root.GetAttribute("id")
ProjectVersion = root.GetAttribute("version")
ProjectName = root.GetElementsByTagName("name").Item(0).InnerText

But i can't get this values:

VersionCode = VERSION_CODE
MinSdk = MIN_SDK
TargetSdk = TARGET_SDK
FullScreen = FULLSCREEN
Orientation = ORIENTATION

Thank you :)


Solution

  • Ok i found answer :)

    Dim doc As XmlDocument = New XmlDocument()
    doc.Load("config.xml")
    Dim root As XmlElement = doc.DocumentElement
    PackageName = root.GetAttribute("id")
    ProjectVersion = root.GetAttribute("version")
    ProjectName = doc.GetElementsByTagName("name").Item(0).InnerText
    For i = 0 To doc.GetElementsByTagName("preference").Count - 1
        If (doc.GetElementsByTagName("preference").Item(i).Attributes.Item(0).Value.Contains("fullscreen")) Then
            FullScreen = doc.GetElementsByTagName("preference").Item(i).Attributes.Item(1).Value
        ElseIf (doc.GetElementsByTagName("preference").Item(i).Attributes.Item(0).Value.Contains("orientation")) Then
            Orientation = doc.GetElementsByTagName("preference").Item(i).Attributes.Item(1).Value
        ElseIf (doc.GetElementsByTagName("preference").Item(i).Attributes.Item(0).Value.Contains("android-minSdkVersion")) Then
            MinSdk = doc.GetElementsByTagName("preference").Item(i).Attributes.Item(1).Value
        ElseIf (doc.GetElementsByTagName("preference").Item(i).Attributes.Item(0).Value.Contains("android-targetSdkVersion")) Then
            TargetSdk = doc.GetElementsByTagName("preference").Item(i).Attributes.Item(1).Value
        ElseIf (doc.GetElementsByTagName("preference").Item(i).Attributes.Item(0).Value.Contains("android-installLocation")) Then
            InstallLocation = doc.GetElementsByTagName("preference").Item(i).Attributes.Item(1).Value
        ElseIf (doc.GetElementsByTagName("preference").Item(i).Attributes.Item(0).Value.Contains("android-versionCode")) Then
            VersionCode = doc.GetElementsByTagName("preference").Item(i).Attributes.Item(1).Value
        End If
    Next