如何使用C ++将文本文件从中间解析为特定字符串?

时间:2014-08-22 19:08:19

标签: c++

我必须解析XML消息的TXT文件并将ID值保存在另一个文件中。我可以使用find函数访问<ID>标记。但是如何获得价值,价值的长度也各不相同。

<note>
    <to>Tove</to>
    <from>Jani</from>
    <ID>Fx12345</ID>
    <body>Don't forget me this weekend!</body>
</note>
<note>
    <to>Tove</to>
    <from>Alex</from>
    <ID>Fx1236785</ID>
    <body>Don't forget me this weekend!</body>
</note>

我正在使用这种方法

while (!fileInput.eof()) {
   getline(fileInput, line);
    if ((offset = line.find("<ID>", 0)) != string::npos) {
        // How to get only value
    }
}

1 个答案:

答案 0 :(得分:4)

string::find()有一个重载,指定开始搜索的位置。因此,只需从<ID>结束开始第二次搜索,即可查找</ID>。你是在两者之间发生的事情。非常简单。

然而,正如其他地方所建议的,那里有很多XML解析器。如果输入文件可能有一些变化,建议使用完整的XML解析器。