【问题标题】:Remove specific tekst within XML Tag in datagridview c#在datagridview c#的XML标签中删除特定的tekst
【发布时间】:2020-03-22 23:35:07
【问题描述】:

我有一个 XML 文件的示例行。

-

数据源=192.168.1.2;初始目录=F05205​​1;持久安全信息=True;用户 ID=sa;密码=beanie;

\\192.168.1.2\data\xmo\

true启用>

豆豆

2017-08-17T10:29:45.0404315

F05205​​1名称>

测试

+

8.38版本>

这是我在应用程序中用于在 gridview 中显示数据的代码。

public Connectionstring()
    {

        InitializeComponent();
        constringview.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

        DataSet ds = new DataSet();
        ds.ReadXml("http://10.10.62.104/xmoads/3.0/installationsex?_token=D21E34A5-21E4-405B-9EDE-18A99A8FD2CA&format=xml");
        ds.Tables[0].Columns[0].ColumnName = "ConnectionString";
        ds.Tables[0].Columns[1].ColumnName = "Ip Adresse";
        ds.Tables[0].Columns[3].ColumnName = "Kliniknavn";
        ds.Tables[0].Columns[5].ColumnName = "Installationsnummer";
        ds.Tables[0].Columns[6].ColumnName = "Systemtype";
        RemoveColumns(ds.Tables[0], ds.Tables[0].Columns[2], ds.Tables[0].Columns[4]);
        ds.Tables[0].Columns[1].SetOrdinal(2);


        constringview.DataSource = ds.Tables[0];
        constringview.RowHeadersVisible = false;
        kundeCount.Text = "Antal fundne installationer: " + constringview.Rows.Count.ToString();



    }

是否可以通过编程删除gridview 中 XML 标记中的字符,以便仅显示IP 地址?怎么做?

我已经在谷歌上尝试了各种搜索以获得解决方案,但没有任何用处:(

【问题讨论】:

  • IP 地址是 xml 内部文本的一部分。因此,方法是在 DataTable 中为 IP 添加一个新列。解析连接字符串列以获取新的 IP 列。
  • 你能添加一个例子来说明如何做到这一点吗?
  • 你可以简化你的代码:DataTable dt = ds.Tables[0];

标签: c# xml gridview dataset


【解决方案1】:

使用正则表达式你可以做这样的事情

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
         static void Main(string[] args)
         {
             DataTable dt = new DataTable();
             dt.Columns.Add("IP", typeof(string));
             string pattern = "Data Source=(?'ip'[^;]+)";
             foreach (DataRow row in dt.AsEnumerable())
             {
                 string connectString = row.Field<string>("ConnectionString");
                 Match match = Regex.Match(connectString, pattern);
                 string ip = match.Groups["ip"].Value;
                 row["IP"] = ip;
             }
         }
    }

}

【讨论】:

  • 非常感谢 =) 不得不写一点不同,因为我正在使用数据集而不是数据表 =)
  • 你可以简化你的代码:DataTable dt = ds.Tables[0];
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多