xml - 验证 Qt 中的 XML 值输入?
问题描述
我想避免代码注入,因此我将 QValidator 子类化以进行检查,如果 QLineEdit 中的字符串不包含“危险”字符 fe <,>,&,",'。有没有更简单的方法来验证来自给定字符串的输入?谢谢你的提示。
myvalidator.h
extern class cXMLValueValidator : public QValidator{
Q_OBJECT
public:
explicit cXMLValueValidator(QObject *parent = 0);
virtual State validate(QString & input, int & pos) const;
};
我的验证器.cpp
QValidator::State cXMLValueValidator::validate(QString & input, int & pos) const {
if(input.isEmpty())
return Acceptable;
if(input.contains(QRegExp("[<>&\"\']")))
return Invalid;
return Acceptable;
}
执行:
QLineEdit* lineEdit = new QLineEdit();
lineEdit->setValidator(new cXMLValueValidator(lineEdit));
解决方案
好的。除了您自己的 QValidator 之外,没有其他方法可以验证 xml 输入。
推荐阅读
- vue.js - 如何减小v-switch的宽度
- python - python pandas excel
- android - 如何在android的mp图表中每小时添加条并对齐每个顶部标签
- python - 如何将火炬张量转换为浮点数?
- sql - Oracle Apex - 用线条或颜色分隔卡片文本行
- angular - 保存 mat-stepper 状态并在页面刷新时将其传递给相同的 mat-stepper
- mysql - MySQL SELECT 在 SELECT 子句或 WHERE 子句中,以便进一步过滤
- node.js - UnhandledPromiseRejectionWarning: TypeError: questionList is not iterable
- r - trycatch 在 R 中只返回警告而不是错误
- sql - 只取行集中的第一行