解析XML文件,生成 String

/**

* @param path
* @return
* @throws Exception
*/
public String readXmlForString(String path) throws Exception{
InputStream in = XNetService.class.getResourceAsStream(path);
Reader reader = new InputStreamReader(in);
BufferedReader bf=new BufferedReader(reader);
StringBuffer str=new StringBuffer();
String row=null;
while(null!=(row=bf.readLine())){
if(!row.equals("")){
str.append(row).append("\n");
}
}
String string = str.toString();
return string;

}

以上XNetService是一个类名称.String path是文件存放的目录

你可以使用Qt的QXmlStreamReader类来解析XML文件生成树结构。下面是一个简单的示例代码: ```cpp #include <QFile> #include <QXmlStreamReader> #include <QDebug> void parseXmlFile(const QString &filePath, QTreeWidgetItem *parentItem) { QFile file(filePath); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open XML file"; return; } QXmlStreamReader xmlReader(&file); while (!xmlReader.atEnd() && !xmlReader.hasError()) { QXmlStreamReader::TokenType token = xmlReader.readNext(); if (token == QXmlStreamReader::StartElement) { QString elementName = xmlReader.name().toString(); QTreeWidgetItem *item = new QTreeWidgetItem(parentItem); item->setText(0, elementName); // 解析元素的属性 QXmlStreamAttributes attributes = xmlReader.attributes(); foreach (const QXmlStreamAttribute &attribute, attributes) { QString attributeName = attribute.name().toString(); QString attributeValue = attribute.value().toString(); QTreeWidgetItem *attributeItem = new QTreeWidgetItem(item); attributeItem->setText(0, attributeName + ": " + attributeValue); } } else if (token == QXmlStreamReader::Characters && !xmlReader.isWhitespace()) { QString text = xmlReader.text().toString(); QTreeWidgetItem *textItem = new QTreeWidgetItem(parentItem); textItem->setText(0, "Text: " + text); } else if (token == QXmlStreamReader::EndElement) { // 当前元素结束,返回上一级 if (parentItem) parentItem = parentItem->parent(); } } if (xmlReader.hasError()) { qDebug() << "XML parsing error: " << xmlReader.errorString(); } file.close(); } int main() { QTreeWidgetItem *rootItem = new QTreeWidgetItem(); QString filePath = "your_xml_file.xml"; parseXmlFile(filePath, rootItem); // 使用生成的树结构进行其他操作 delete rootItem; return 0; } ``` 在上述示例,`parseXmlFile`函数用于解析XML文件生成树结构。通过`QXmlStreamReader`逐行读取XML文件,根据不同的`TokenType`进行相应的处理,创建`QTreeWidgetItem`来表示XML元素、属性和文本。你可以根据需要对生成的树结构进行进一步的操作。记得将上述代码的`your_xml_file.xml`替换为你要解析XML文件路径。 希望这可以帮助到你!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田哥coder

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值