webForumDet fria alternativet

Nu blir det XPath

13 svar · 376 visningar · startad av icaaq

icaaqMedlem sedan okt. 20005 273 inlägg
#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

renholmMedlem 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 .

DinoMedlem sedan sep. 20011 914 inlägg
fredrikMedlem 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

icaaqMedlem 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?

NETworkMedlem sedan juni 20011 732 inlägg
#6

Ett enkelt exempel:

private string myString="";
public string MyString{
  get{
    return myString ;
  }
  set{
    myString=value;
  }
}
nikoMedlem 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å.

ZyaxMedlem 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

icaaqMedlem sedan okt. 20005 273 inlägg
#9

Zyax skrev:

Och givetvis accessors som hör till dessa

:q

NETworkMedlem 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.

icaaqMedlem 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

nikoMedlem 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

icaaqMedlem 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

icaaqMedlem 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

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)