2012-07-23 41 views
1

我正试图解析this XML Yahoo feedC++中,如何获得HTML代码中的特定字符串

如何我喜欢得到每个记录成在C++中的阵列 喜欢创建结构

然后得到的那些可变 并记录结构内的每个元素。

首先,我如何得到的数值超出

感谢

+0

C++有'的std :: string :: find()方法'和'的std :: string :: SUBSTR()'。您可以使用它们来查找和提取您正在查找的数据。 – hmjd 2012-07-23 15:47:49

回答

0

如果你想惹的html代码:

#include <iostream> 
#include <fstream> 
int main() { 
    std::ifstream ifile("in.html"); 
    std::string line; 
    std::string ndl("<span id=\"yfs_l10_sgdmyr=x\">"); 
    while(ifile.good()){ 
    getline(ifile, line); 
    if (line.size()) { 
     size_t spos, epos; 
     if ((spos = line.find(ndl)) != std::string::npos) { 
     spos += ndl.size(); 
     if ((epos = line.find(std::string("</span>"), spos)) != std::string::npos) { 
      std::cout << line.substr(spos, epos-spos) << std::endl; 
     } 
     } 
    } 
    } 
    return 0; 
} 
+0

我尝试了你的代码,但是它没有输出任何东西。 – 2012-07-23 16:36:03

+0

你有没有in.html文件? – perreal 2012-07-23 16:36:56

+0

我解析这个页面[链接](http://sg.finance.yahoo.com/q?s=USDSGD=X),我使用lynx -source URL> buffer.txt,那么缓冲区其实就是源代码。我将你的sgdmyr改为usdsgd,但似乎不起作用 – 2012-07-23 16:49:21

5

您可能想看看如果给定页面的JSON格式提供输出。然后,您可以简单地请求该值,而不是乱用HTML。雅虎!财务网站甚至可能会提供一个可用于轻松请求价值的API。

+0

我找到了api,但是我如何解析这个以获得例如USD/SGD – 2012-07-23 15:53:52

相关问题