Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by It_is_hot_in_vegas · Oct 18, 2017 at 10:32 PM · c#textxmlxmlserializer

Need help with XML Parsing. (C sharp)

I'm trying to get my program to read an XML file from my other program, but it fails to load text info from the XML file. The script can detect the XML file (and its contents) just fine, but I need help getting the text from the XML file to my program.

Here's the XML file for reference:

 <GameInformation>
     <ProgramInfo>
           <nameInfo> Nameing = "Program Title"</nameInfo>
           <coderInfo> Coder = "By me"</coderInfo>
          <versionInfo> Version = "1"</versionInfo>
           <descriptionInfo> Description = "This is an XML file I am trying to get my program to read.</descriptionInfo>
     </ProgramInfo>
 </GameInformation>

And here's my script also for reference:

 using UnityEngine;
 using UnityEngine.UI;
 using System.Xml.Serialization;
 using System.IO;
 using System.Text;
 using System;
 using System.Xml;
 using System.Collections;
 using System.Collections.Generic;
 
 [System.Serializable]
  public class GameInfo {
  
     [XmlIgnore]/*[System.NonSerialized]*/ 
     //public GameObject muzzleflashObject;
      
     [XmlAttribute("nameInfo")] public string Nameing = "";
     [XmlAttribute("coderInfo")] public string Coder = "";
     [XmlAttribute("descriptionInfo")] public string Description = "";
     [XmlAttribute("versionInfo")] public int Version = 1;
  
  }
 
  [System.Serializable]
  [XmlRoot("GameInformation")]
  public class InfoDirectory {
      [XmlElement("ProgramInfo")]
      public GameInfo[] GameInformation;
      
  }
 
 public class XMLTest : MonoBehaviour {
 
     public string XmlPrint;
     public Text GameTitleText;
     public GameObject TitleTempStorage;
     public Component Curr;
 
 
     public Dictionary<string,GameInfo> InfoDictionary;    
 
     void Start(){
         ReadGameInfo();
         Debug.Log ("Did it work?");
     }
  
     void ReadGameInfo() {
         System.IO.FileStream fileStream;
         XmlReader reader;
            InfoDictionary = new Dictionary<string,GameInfo>();
          
             string path = "C:/GameInfo.xml";
     GameTitleText = GameObject.Find("GameTitle").GetComponent<Text>();
     TitleTempStorage = GameObject.Find("TitleTempStorage");
     Curr = TitleTempStorage.GetComponent<CurrentGameTitle>();
          
             var xmlSerializer = new XmlSerializer(typeof(InfoDirectory));
         var stream = File.Open("C:/GameInfo.xml", FileMode.Open, FileAccess.Read);
             var deserializedInfo = xmlSerializer.Deserialize(stream) as InfoDirectory;
         reader = new XmlTextReader(stream);
                          
 
             stream.Close();
         
         Debug.Log(deserializedInfo.GameInformation.Length);    
 
             for(int i = 0; i < deserializedInfo.GameInformation.Length; i++) {
                 GameInfo ProgramInfo = deserializedInfo.GameInformation[i];
             XmlPrint = "This is " + (ProgramInfo.Nameing) + ", made by " + (ProgramInfo.Coder);
             GameTitleText.text = (ProgramInfo.Coder);
             Debug.Log ("Well, did it? " + ProgramInfo.Description);
             //(ProgramInfo.name, ProgramInfo); //-Not in use.
             }
        }
 
 }


If you know what's wrong, please let me know. None of the answers on here has helped me so far and I want to get this part of my program over with (I've been trying to figure out how to display text from an XML file for nearly 4+ days already.) and continue with the rest of my program. Thanks!

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image It_is_hot_in_vegas · Oct 18, 2017 at 11:05 PM 0
Share

Still looking for an answer..

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Bunny83 · Oct 18, 2017 at 11:32 PM

Your XML data makes no sense and it can't be parsed into the class you have defined. An XML file doesn't have key-value pairs like JSON. You have elements which can have sub elements or just a data value. However your elements contain a string which in turn seems to represent some sort of key-value pair

For example you have an element "nameInfo" but the content of that element is this: Nameing = "Program Title". You probably want to store just Program Title in that element.

Next thing is you marked your 4 fields in your "GameInfo" class as "XmlAttribute" but you actually defined elements. So the XML which would fit to your class would look like this:

 <GameInformation>
     <ProgramInfo nameInfo="Program Title" coderInfo="By me" versionInfo="1" descriptionInfo="This is an XML file I am trying to get my program to read" />
 </GameInformation>

If you want to use elements instead you have to define your class like this:

 [System.Serializable]
 public class GameInfo
 {
      [XmlElement("nameInfo")] public string Nameing = "";
      [XmlElement("coderInfo")] public string Coder = "";
      [XmlElement("descriptionInfo")] public string Description = "";
      [XmlElement("versionInfo")] public int Version = 1;
 }

The XML for this class would look like this:

 <GameInformation>
     <ProgramInfo>
         <nameInfo>Program Title</nameInfo>
         <coderInfo>By me</coderInfo>
         <versionInfo>1</versionInfo>
         <descriptionInfo>This is an XML file I am trying to get my program to read.</descriptionInfo>
     </ProgramInfo>
 </GameInformation>

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Bunny83 · Oct 18, 2017 at 11:36 PM 1
Share

You may want to have a look at this page to understand what an element and what an attribute is

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

407 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Read AND Write to XML at runtime 1 Answer

How to update text every time I press space? 1 Answer

Xml Serialization? (how to read/write?) 1 Answer

xml parsing error 0 Answers

How do I make this XML file parser work in Unity 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges