C#string.IndexOf()无法正常工作

Zoh*_*lam -1 c# string parsing

我使用XML-Like格式的文件,如:

<Tables>
    <Student>
      ID
      Roll_Number
      Name
    </Student>
</Tables>
Run Code Online (Sandbox Code Playgroud)

我已经读了一个字符串中的文件,现在进行解析,我想使用string.IndexOf(string)方法.它适用于结束标签,例如<Student>,<Tables>但它为关闭标签提供了错误的索引,例如</Tables></Students>

这是我的代码:

dbFileString.Substring(dbFileString.IndexOf("<Tables>") + "<Tables>".Length, dbFileString.IndexOf("</Tables>"));
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Sco*_*ain 8

这不是IndexOf你的问题,而是你的使用Substring.第二个参数需要是子字符串的长度,而不是结束索引.您需要传入"结束索引 - 起始索引"作为第二个参数.

var startingIndex = dbFileString.IndexOf("<Tables>") + "<Tables>".Length
var endingIndex = dbFileString.IndexOf("</Tables>")'
var result = dbFileString.Substring(startingIndex, endingIndex - startingIndex);
Run Code Online (Sandbox Code Playgroud)

但是,我真的建议你停止这种手工解析XML并使用类似的方法XmlDocument.