webForumDet fria alternativet

Nu blir det XPath

.NET

13 svar · 378 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#1

Jag sitter med följande XML fil

[red]
<?xml version="1.0" encoding="utf-8" ?>
<poll xmlns="http://tempuri.org/XMLFile1.xsd">
	<polls>
		<week>43</week>
		<que>Har du köpt några julklappar?</que>
		<answer text="Ja" votes="" />
		<answer text="nej" votes="" />
	</polls>
	<polls>
		<week>44</week>
		<que>Har du köpt leksaker på nätet nångång?</que>
		<answer text="Ja" votes=""></answer>
		<answer text="Nej" votes=""></answer>
	</polls>
</poll>
[/red]

Och jag har läst lite om XPath men jag skulle vilja se ett exempel på hur man kan få ut t.ex que och alla answer ur week 43. Är det nån här som har arbetat med XML på detta vis med .NET ?

mvh icaaq

Medlem sedan apr. 20012 266 inlägg
#2

Har inte jobbat något med det ännu, men du kan hitta "lite" information här http://www.w3.org/TR/xpath .

Medlem sedan sep. 20011 914 inlägg
Medlem sedan dec. 19991 072 inlägg
#4

Jag har trixat en hel del med liknande i .Net.

Din x-path borde se ut:
/poll/polls[week=43]

Tips på en riktigt bra sida med exempel:
http://www.w3schools.com/xpath/default.asp

Medlem sedan okt. 20005 273 inlägg
#5

Jag la XML på hyllan ett tag för att återgå till DB istället. Men jag har har en fråga angående OOP (igen ;) ) Jag tänkte följande

[red]
public class Poll
	{
		public void Open()
		{
			//öppnar och hämtar aktuell poll default är veckans annars det man satt i date.
		}
		public void Add()
		{
			

	}
	}[/red]

Det jag undrar är hur jag ska skriva för att få olika metoder på metoden Add().
Jag vill alltså kunna skriva

[red]
Poll myPoll = new Poll
myPoll.open()
[b]myPoll.Add.Question = "Hur mycket tid tillbringar du på wF?"[/b]
...
...
...
[/red]

hur skulle det kunna se ut?

Medlem sedan juni 20011 732 inlägg
#6

Ett enkelt exempel:

private string myString="";
public string MyString{
  get{
    return myString ;
  }
  set{
    myString=value;
  }
}
Medlem sedan juni 20022 599 inlägg
#7

En metod kan inte ha en metod.
För att din syntax ska funka måste Add vara en instans av en annan klass.

Så här tex:

public class AnnanKlass
	{
		public string Question;
	}

public class Poll
	{
		public void Open()
		{
			//öppnar och ..
		}
		public AnnanKlass Add=new AnnanKlass();
		
	}

Med reservation för att jag inte kan C# och inte vet om man kan skriva exakt så.

Medlem sedan mars 200262 inlägg
#8

Tror inte du skall ha en annan klass, du behöver ju bara skriva:

myPoll.Add = "Hur mycket tid tillbringar du på wF?"

eller (smaksak)

myPoll.AddQuestion = "Hur mycket tid tillbringar du på wF?"

Och givetvis accessors som hör till dessa

Medlem sedan okt. 20005 273 inlägg
#9

Zyax skrev:

Och givetvis accessors som hör till dessa

:q

Medlem sedan juni 20011 732 inlägg
#10

En accessor är det jag (felaktigt, sorry!) svarade på din fråga. Exempelvis att du kan hämta och/eller sätta en privat variabel i en klass via en publik variabel.

Medlem sedan okt. 20005 273 inlägg
#11

Du behöver inte svara då jag kollade i reffen ..... den hjälper mig i de flesta situationer

Medlem sedan juni 20022 599 inlägg
#12

Men faktum kvarstår. Om man vill använda syntaxen:

myPoll.Add.Question = "Hur mycket tid tillbringar du på wF?"

Så måste Add vara en publik instans av en annan klass. Och det var väl det som var frågan? :q

Medlem sedan okt. 20005 273 inlägg
#13

japp..........så det blev lite fler metoder på den första klassen bara.......så länge :)

mvh icaaq

Medlem sedan okt. 20005 273 inlägg
#14

hmm...jag kan inte riktigt släppa tanken på XML och XPath.

Så jag tänkte väcka denna tråd igen ;) På Fredriks inlägg:

[red]/poll/polls[week=43] [/red]

hur gör jag för att plocka ur frågan <que> och alla svaralternativ <answer>?

Jag vill ha in värdena i en funktion till en omröstning.

mvh icaaq

271 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)