我发现了这个问题,是的,它适用于我的N ++ ...但我感觉不够快,我需要从我的应用程序复制到N ++,然后再回到我的应用程序。 示例:
<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" />
我希望X值增加45。应该是:
<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" />
这可以在C#/ VB上完成吗?但我更喜欢VB,因为我的应用程序是用VB编写的。顺便说一句,我发现this,看起来像是在N ++上类似python,但我不知道如何使用它; _;
编辑:我不希望每个元素都增加,但只有我选择的文本(我可以从textbox1.selectedtext获得)
答案 0 :(得分:2)
作为XML,您应该将其解析为XML,例如
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");
根据您的意见,您不需要简单的流/作者:
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
(您的代码可能会失败,因为您没有重置xmlStream.Position = 0
)