提取 XML 标记中双 qoutes 之间的子字符串
Extracting substring between double qoutes in a XML tag
我一直在尝试获取XML标签中的子字符串。字符串:"<Fruits Type="Apple" Quantity="10"></Fruits>"
,
我只想要子字符串 1 = 苹果子字符串 2 = 10。
string string1 ="<Fruits Type="Apple" Quantity="10"></Fruits>";
int lPos = string1 .find(""");
string substring2 = string1.substr(lPos + 1);
string substring1 = substring2.substr(0, substring2.find("""));
substring2 = substring2.substr(substring2.find("""), substring2.rfind(""")- substring2.find("""));
substring2 = substring2.substr(substring2.rfind(""")+1);
cout<<substring1 << "n" << substring2;
问题是我能够获得预期的输出。但我想知道除了这种方法之外是否有任何有效的方法。
好的,
首先,您没有提供代码,因此它不可能出错。
其次,在你的string1
变量中有一个错误,它应该是:
string string1 ="<Fruits Type="Apple" Quantity="10"></Fruits>";
否则它将无法编译。
第三,如果你真的想搜索这样的字符串,可以这样做:
#include <iostream>
#include <string>
static std::string input = "<Fruits Type="Apple" Quantity="10"></Fruits>";
int main()
{
std::string::size_type begin = input.find('"');
std::string::size_type end = input.find('"', ++begin);
std::string buffer(input, begin, (end - begin));
std::cout << buffer << std::endl;
return 0;
}
第四,也是最重要的 - 请善待自己,并使用一些XML库来为您完成。否则,您可能会面临漫长而不眠之夜...
相关文章:
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 编辑字符串以包含括号 c++ 之间的变量
- 同一分隔符之间的多个子字符串
- 在.cpp文件之间传递全局字符串变量?
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- 两个字符串之间的数学运算
- 在 Rcpp 中的字符串类型之间转换时出错
- 如何排列二进制字符串以最小化它们之间的距离
- 目标是找到两个 c 字符串之间的公共前缀(必须使用特定的函数标头)
- 我需要在C++的两个字符串之间找到共同的前缀
- 打印C++中字符出现之间/之后的所有子字符串
- 使用正则表达式c++从单词和分隔符之间的字符串中提取所有子字符串
- C++获取两个分隔符之间的字符串并替换它
- 如何在没有映射的情况下在枚举和字符串之间进行转换?
- 正则表达式匹配字符串之间的数字
- 有序地图字符串搜索与整数搜索之间的时间复杂度
- C++ 复制字符串的指定索引之间的任何子字符串
- 匹配外部单引号之间的字符串