Gå til innhold

Anbefalte innlegg

Hei!

Har ikke helt peil på hva man kaller alle de nodes, og childnodes og sånt, men problemmet er

at jeg har lyst å legge til flere ting til XML filen min

dette er xml filen nå:

<?xml version="1.0"?>
<person>
<navn>Player</navn>
<nr>1</nr>
</person>

 

dette er c# koden min:

namespace ReadXML
{
using System;
using System.Xml;

public class ReadBankAccount
{
	private const string m_strFileName = "c:\\account.xml";

	public static void Main()
	{
		XmlTextReader XMLdoc = null;
		XMLdoc = new XmlTextReader(m_strFileName);

		while (XMLdoc.Read())
		{
			if (XMLdoc.NodeType == XmlNodeType.Element)
			{

				if (XMLdoc.LocalName.Equals("navn"))
				{
					Console.WriteLine("{0}", XMLdoc.ReadString());
				}

				if (XMLdoc.LocalName.Equals("nr"))
				{
					Console.WriteLine("{0}", XMLdoc.ReadString());
				}
			}
		}
	}
}
}

 

Jeg har lyst å lese XML filer som f.eks

<?xml version="1.0"?>
<person>
<navn>Player</navn>
<nr>1</nr>
	<alder>
			<aar>1974</aar>
			<fodested>Oslo</fodested>
	</alder>
</person>

 

Hvordan skal jeg gjøre det?

 

(Helt ny til XML)

Lenke til kommentar
Videoannonse
Annonse

Hehe du ser litt ny ut i C# også

Console.WriteLine(XMLdoc.ReadString());

:)

 

Anyways, System.Xml synes jeg nermest er helt ubrukelig når man skal skrive nye XML filer, derfor pleier jeg å lese inn hele fila, og skrive den på nytt manuelt, uten å bruke System.XML

Grunnen er at man må bruke XmlDocument for å lage nye noder, istedetfor den mer fornuftige metoden, som ville væer at XmlElemtn, XmlAttribute etc. hadde brukt constructors.

 

Derfor må man skrive

XmlElement new_elem = document.CreateElement();
(sett verdier til element)
document.ChildNodes[1].ChildNodes.Add(new_elem);

 

Jeg vile foretrukket at det fungerte slik:

 

document.ChildNodes[1].ChildNodes.Add(new XmlElement("Hello World!"));

Men det ser ut til at System.XML er skrevet av idioter.

Lenke til kommentar

Du leser den nå forsåvidt, du tar bare ikke høyde for alle de forskjellige elementene der. Hvis du lar koden i Main være som skrevet under, skulle du kunne få ut en ganske leselig output.

 

System.Xml er forøvrig helt ypperlig til å lese Xml med. Tar bare litt tid å komme inn i, men det er mye bedre enn mye annet surr som ligger rundt omkring.

 

XmlReader reader = XmlReader.Create(m_strFileName);

		while (reader.Read())
		{
			switch (reader.NodeType)
			{
				case XmlNodeType.Element:
					for (int i = 0; i < reader.Depth; i++)
						Console.Write("\t");
					Console.Write("<" + reader.Name);
					if (reader.HasAttributes)
					{
						while (reader.MoveToNextAttribute())
							Console.Write(" " + reader.Name + "=\"" + reader.Value + "\"");
					}

					if (reader.IsEmptyElement) Console.WriteLine("/>");
					else Console.WriteLine(">");
					break;
				case XmlNodeType.Text:
					for (int i = 0; i < reader.Depth; i++)
						Console.Write("\t");
					Console.WriteLine(reader.Value);
					break;
				case XmlNodeType.EndElement:
					for (int i = 0; i < reader.Depth; i++)
						Console.Write("\t");;
					Console.WriteLine("</" + reader.Name + ">");

					break;
			}
		}

 

Edit! Mente Main metoden

Endret av The Jackal
Lenke til kommentar
Hei!

Har ikke helt peil på hva man kaller alle de nodes, og childnodes og sånt, men problemmet er

at jeg har lyst å legge til flere ting til XML filen min

dette er xml filen nå:

 

Sikkert bare jeg som dummer meg ut nå men,

jeg ville LESE filen, eller sa jeg ikke det? :s

 

Nei, det sa du ikke. Du sa du ville legge til nye ting til en XML fil.

Jebus :roll:

Lenke til kommentar
Hei!

Har ikke helt peil på hva man kaller alle de nodes, og childnodes og sånt, men problemmet er

at jeg har lyst å legge til flere ting til XML filen min

dette er xml filen nå:

 

Sikkert bare jeg som dummer meg ut nå men,

jeg ville LESE filen, eller sa jeg ikke det? :s

 

Nei, det sa du ikke. Du sa du ville legge til nye ting til en XML fil.

Jebus :roll:

 

Da må kanskje du lese litt bedre?

 

"Jeg har lyst å lese XML filer som f.eks"

 

...altså, han vil utvide xml filen sin, men fortsatt lese den. Ikke programmatisk utvide den :roll:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...