将文本 vb.net 解析为字符串



假设我有一个字符串,

如下所示
<image1>C:imagesdropboxlister4844-001.jpg</image1><image2>C:imagesdropboxlister4844-002.jpg</image2><image3>C:imagesdropboxlister4844-003.jpg</image3><image4>C:imagesdropboxlister4844-004.jpg</image4>

它包含从图像1到图像N

我需要检查每个图像路径并检查该路径上的图像是否真的存在。

如何循环?

我认为找到单词的索引并在两者之间拉动所有文本是最慢的方法。

你能提出什么建议吗?

Private Function Word(source As String, start As String, ends As String) As String
Dim sSource As String = source
Dim sDelimStart As String = start
Dim sDelimEnd As String = ends
Dim nIndexStart As Integer = sSource.IndexOf(sDelimStart)
Dim nIndexEnd As Integer = sSource.IndexOf(sDelimEnd)
If nIndexStart > -1 AndAlso nIndexEnd > -1 Then
Dim res As String = Strings.Mid(sSource, nIndexStart + sDelimStart.Length + 1, nIndexEnd - nIndexStart - sDelimStart.Length) 'Crop the text between
Return res
Else
Return ""
End If
End Function

在此,我将字符串转换为XElement,然后迭代每个imageN节点。 只要您的输入字符串与您指定的那样,这应该有效。

Dim s As String
s = "<image1>C:imagesdropboxlister4844-001.jpg</image1><image2>C:imagesdropboxlister4844-002.jpg</image2><image3>C:imagesdropboxlister4844-003.jpg</image3><image4>C:imagesdropboxlister4844-004.jpg</image4>"
s = "<FOO>" & s
s = s & "</FOO>"
Dim fooXE As XElement = XElement.Parse(s)
For Each el As XElement In fooXE.Elements
' Debug.WriteLine(el.Value)
If IO.File.Exists(el.Value) Then
'the path exists
End If
Next

最新更新