我想使用子字符串来获取某个字符串中匹配的所有值吗?
我给出了一些代码,该代码可以找到唯一的结果。我需要所有火柴。
有可能吗?
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>
使用Substring获取它们。
<dosyaId>523123427202</dosyaId> <dosyaId>5231272023</dosyaId>
答案 0 :(得分:2)
xml解析器显然是正确的选项,但是使用您的代码的一个选项是循环(代码假定始终存在对)-例如。
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
}