首页 新闻 会员 周边 捐助

.net String分隔

0
[待解决问题]

原文本:

"<img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-0bbb1d4b322747feb1a7e59f7b7c4714-00.jpg' width='100%' /><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-ccdcac9578a04805bf4c333a48acc0e6-01.jpg' width='100%' /><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-3abfe5a6dfdd44648f9c4292376d00eb-02.jpg' width='100%' />"

需要变成一个字符串数组

如下:

[
<img src="http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/7c6e48f502124fd6b961a3479310552e-23873d70b9b24eb3ad58e4f5f7368fee-00.jpg" width="100%">,
<img src="http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/7c6e48f502124fd6b961a3479310552e-f1ef963e0df14b01bc7df0782eaaeb0c-01.jpg" width="100%">,
<img src="http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/7c6e48f502124fd6b961a3479310552e-d2c60b9b8e36469b964c35145f301cd2-05.jpg" width="100%">
]

求大神给点建议

奇妙能力的主页 奇妙能力 | 菜鸟二级 | 园豆:253
提问于:2017-10-18 16:06
< >
分享
所有回答(3)
0

首位加[

末位加]

> 替换为 >,

去除最后的 ,

挨踢新手 | 园豆:71 (初学一级) | 2017-10-18 16:10
0
using System;
using System.Linq;
using System.Xml.Linq;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var tmp = "<array><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-0bbb1d4b322747feb1a7e59f7b7c4714-00.jpg' width='100%' /><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-ccdcac9578a04805bf4c333a48acc0e6-01.jpg' width='100%' /><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-3abfe5a6dfdd44648f9c4292376d00eb-02.jpg' width='100%' /></array>";

            var element = XElement.Parse(tmp);

            var array = element.Elements().Select(el => el.ToString()).ToArray();

            Console.ReadKey();
        }
    }
}
写代码的小2B | 园豆:4377 (老鸟四级) | 2017-10-18 16:21

大神, 你没有考虑 我这个img标签没有闭合。没有写像这样的闭合 <img xxxxx> </img>,不是这样的形式,那么在编程子元素的时候,回抛异常的。

支持(0) 反对(0) 奇妙能力 | 园豆:253 (菜鸟二级) | 2017-10-18 16:27

@奇妙能力: 

不需要这样的形式, <img />这样也是正常的xml格式。

之所以异常是因为xml必须要有根节点。

你看我上面的代码,tmp字符串前后加了<array>。

支持(0) 反对(0) 写代码的小2B | 园豆:4377 (老鸟四级) | 2017-10-18 16:29

@写代码的小2B: 

大神你看:
我修改之后的写法如下:

var t = XElement.Parse(string.Format("<array>{0}</array>", htmlStr));
var result = t.Elements();
var aary = result.Select(e => e.ToString()).ToArray();

执行后还是有异常:第 1 行,位置 854 上的开始标记“img”与结束标记“array”不匹配。 第 1 行,位置 1024。

支持(0) 反对(0) 奇妙能力 | 园豆:253 (菜鸟二级) | 2017-10-18 16:42

@写代码的小2B: htmlStr就是上面问题中的那个文本

支持(0) 反对(0) 奇妙能力 | 园豆:253 (菜鸟二级) | 2017-10-18 16:42

@奇妙能力: 

大兄弟,那就是这个htmStr有问题。

我给的示例代码tmp使用的是你问题里面的字符串,没有改过。

确保htmlStr和你问题里面给的字符串一样。

支持(0) 反对(0) 写代码的小2B | 园豆:4377 (老鸟四级) | 2017-10-18 16:46

@奇妙能力: 

那你可以执行我给的示例代码试试,然后确定问题在哪。

支持(0) 反对(0) 写代码的小2B | 园豆:4377 (老鸟四级) | 2017-10-18 16:56
0
static void Main(string[] args)
        {
            List<string> strList = new List<string>();
            Regex regx = new Regex("<img[^<>]*/>");
            MatchCollection col= regx.Matches("<img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-0bbb1d4b322747feb1a7e59f7b7c4714-00.jpg' width='100%' /><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-ccdcac9578a04805bf4c333a48acc0e6-01.jpg' width='100%' /><img src='http://192.168.0.220:8899/a12dd147-6048-43e3-806d-2b347fe58cb5/C/201703/2e8a04f472a14b55a5ba6310b38cea63-3abfe5a6dfdd44648f9c4292376d00eb-02.jpg' width='100%' />");
            foreach (Match item in col)
            {
                strList.Add(item.Value);
            }
            Console.WriteLine("end----------------------------------------");
            Console.ReadKey();
        }

结果

海之殇 | 园豆:500 (菜鸟二级) | 2017-10-19 14:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册