2

使用 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

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

4

1 回答 1

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
于 2013-07-05T19:11:15.820 回答