Reputation: 157
I want to get all of the values which is matches in a some string with using substring?
I gave the some code which finds the only one result. I need all of matches..
İs it possible?
int pFrom = icrasorgula_cevap.IndexOf("<dosyaId>") + "<dosyaId>".Length;
int pTo = icrasorgula_cevap.LastIndexOf("</dosyaId>");
string result = icrasorgula_cevap.Substring(pFrom, pTo - pFrom);
<root>
<object-array>
<object-array>
<DVOList>
<liste>
<AvukatDosyaKisiDVO>
<birimId>105344286</birimId>
<birimAdi>Merkezi Takip Sistemi</birimAdi>
<dosyaNo>2019/15333</dosyaNo>
<dosyaTurKod>294</dosyaTurKod>
<dosyaAcilisTarihi>2019-06-19 03:50:05.0</dosyaAcilisTarihi>
<dosyaDurumu>0</dosyaDurumu>
<birimTuru1>11</birimTuru1>
<birimTuru2>1101</birimTuru2>
<birimTuru3>1199</birimTuru3>
<dosyaId>523127202</dosyaId>
<dosyaKisiSize>1</dosyaKisiSize>
<dosyaTurAciklama>MTS Dosyası</dosyaTurAciklama>
</AvukatDosyaKisiDVO>
</liste>
<liste>
<AvukatDosyaKisiDVO>
<birimId>105428346</birimId>
<birimAdi>Merkezi Takip Sistemi</birimAdi>
<dosyaNo>2019/15333</dosyaNo>
<dosyaTurKod>294</dosyaTurKod>
<dosyaAcilisTarihi>2019-06-19 03:50:05.0</dosyaAcilisTarihi>
<dosyaDurumu>0</dosyaDurumu>
<birimTuru1>11</birimTuru1>
<birimTuru2>1101</birimTuru2>
<birimTuru3>1199</birimTuru3>
<dosyaId>523123427202</dosyaId>
<dosyaKisiSize>1</dosyaKisiSize>
<dosyaTurAciklama>MTS Dosyası</dosyaTurAciklama>
</AvukatDosyaKisiDVO>
</liste>
<actualCount>0</actualCount>
<currentPage>0</currentPage>
<pageSize>0</pageSize>
<cacheID>0</cacheID>
<recordCount>0</recordCount>
</DVOList>
</object-array>
</object-array>
Get these with using Substring..
<dosyaId>523123427202</dosyaId> <dosyaId>5231272023</dosyaId>
Upvotes: 0
Views: 66
Reputation: 5194
An xml parser is obviously the correct option, but using your code one option is to loop (code assumes there are always pairs) - e.g.
var icrasorgula_cevap = @"<dosyaId>first</dosyaId><dosyaId>second</dosyaId><dosyaId>third</dosyaId>";
int index = 0;
int pTo = 0;
while ((index = icrasorgula_cevap.IndexOf("<dosyaId>", pTo)) >= 0)
{
int pFrom = index + "<dosyaId>".Length;
pTo = icrasorgula_cevap.IndexOf("</dosyaId>", pFrom);
string result = icrasorgula_cevap.Substring(pFrom, pTo - pFrom);
Console.WriteLine(result); // first, second, third
}
Upvotes: 2