2016-04-26 5 views
0

Ich fand diese Frage und ja, es funktioniert auf meinem N ++ ... Aber ich fühle mich nicht schnell genug, dass ich von meiner App auf die N ++ und dann zurück zu meiner App kopieren muss. Beispiel:VB/C# Suchen und Ersetzen durch Hinzufügen von Nummern?

<DatasetUnit x="2" y="0" ID="18" /> 
<DatasetUnit x="4" y="0" ID="5" /> 
<DatasetUnit x="3" y="0" ID="10" /> 
<DatasetUnit x="5" y="0" ID="30" /> 
<DatasetUnit x="1" y="0" ID="33" /> 
<DatasetUnit x="10" y="0" ID="1" /> 

Und ich möchte, dass X-Wert steigt um 45. Es sollte sein:

<DatasetUnit x="47" y="0" ID="18" /> 
<DatasetUnit x="49" y="0" ID="5" /> 
<DatasetUnit x="48" y="0" ID="10" /> 
<DatasetUnit x="50" y="0" ID="30" /> 
<DatasetUnit x="46" y="0" ID="33" /> 
<DatasetUnit x="55" y="0" ID="1" /> 

ist, kann dies auf C#/VB getan werden? Aber ich bevorzuge VB, weil meine App auf VB geschrieben ist. Btw, ich fand this, sieht aus wie mit Python auf N ++, aber ich habe keine Ahnung, wie man es benutzt; _;

Edit: Ich möchte nicht jedes Element erhöht, sondern nur der Text, den ich ausgewählt (die ich von textbox1.selectedtext bekommen)

+0

Sie haben versucht, es mit Regex zu tun? – RononDex

+0

Ist Ihre Eingabe gültiges XML? –

+0

@RononDex ja und wie man [das] (https://msdn.microsoft.com/en-us/library/ms149475 (v = vs.110) .aspx); _; – Smankusors

Antwort

2

Wie der XML Sie es als XML analysieren sollte, zum Beispiel

var doc = XDocument.Load(@"c:\x.xml"); 

foreach (var el in doc.Descendants("DatasetUnit")) 
{ 
    var x = el.Attribute("x"); 
    x.Value = (int.Parse(x.Value) + 45).ToString(); 
} 

doc.Save(@"c:\x2.xml"); 

In Anbetracht Ihrer Kommentare, brauchen Sie keinen Strom/Schreiber Sie können einfach:

Dim doc = XDocument.Parse(TextBox1.Text) 
For Each el In doc.Descendants("DatasetUnit") 
Dim x = el.Attribute("x") 
    x.Value = (Integer.Parse(x.Value) + 45).ToString() 
Next 
TextBox1.Text = doc.ToString 

(Ihr Code nicht wahrscheinlich, weil Sie nicht xmlStream.Position = 0 zurückgesetzt haben)

+0

Gibt einen Fehler zurück: Root-Element fehlt. Oh yeah Ich lade das XDocument direkt aus dem Stream, nicht aus einer Datei laden – Smankusors

+1

Root-Element fehlt bedeutet, dass das XML nicht gut gebildet oder nicht richtig geladen ist, wie sieht es aus/der Code? –

+0

[Der Code] (http://smankusors.16mb.com/private/smallcode.txt) und [XML] (http://smankusors.16mb.com/private/dataset.xml). Ich möchte das Element nach dem Kommentar "Nur ändern unter" erhöhen – Smankusors