逐个增量元素

时间:2013-07-05 17:33:47

标签: xml vb.net linq

使用VB.NET& LINQ;我正在写一个XML文件,我需要更新“点击次数”。我正在尝试创建一个函数,每当有人点击链接时,它会将元素appClick增加1。

<applications>
  <app id="1">
    <appName>Service Desk</appName>
    <appLink>https://websiteurlhere.com</appLink>
    <appFav>1</appFav>
    <appClick>0</appClick>
  </app>
</applications>

所以我有调用应用程序的子程序,它运行正常。但是缺乏增加appClick元素的能力。

Public Sub appCall(ByVal x As String) ' x = application name
    Dim appQuery = _
        From c In doc.<applications>.<app> _
        Where c.<appName>.Value = x _
        Select c.<appLink>

    For Each result In appQuery
        System.Diagnostics.Process.Start(result.Value)
    Next
End Sub

如果可以改进代码,我也愿意就此提出建议。

1 个答案:

答案 0 :(得分:1)

而不仅仅是Select c.<appLink>,请执行Select c.<appClick>, c.<appLink>

然后你可以这样做:

For Each result In appQuery
    result.appClick.Value += 1
    System.Diagnostics.Process.Start(result.appLink.Value)
Next

在此之后不要忘记保存文档。

doc.Save("fileName")

以下是我用于测试的示例:

Public Sub appCall(ByVal x As String) ' x = application name
  Dim doc = <applications>
              <app id="1">
                <appName>Service Desk</appName>
                <appLink>https://websiteurlhere.com</appLink>
                <appFav>1</appFav>
                <appClick>0</appClick>
              </app>
            </applications>

  Dim appQuery = _
      From c In doc.<app> _
      Where c.<appName>.Value = x _
      Select c.<appClick>, c.<appLink>

  For Each result In appQuery
    result.appClick.Value += 1
    Debug.WriteLine(result.appLink.Value)
  Next
End Sub