如何让DataSet.ReadXml读取XML时自动去除空白字符?
解决DataSet.ReadXml读取XML时保留空白字符的问题
DataSet.ReadXml本身没有直接的配置项自动去除元素文本内的缩进、换行这类空白,但可以通过XmlReader配合配置实现,不用编写完整的自定义读取函数,步骤如下:
方法:结合XmlReaderSettings读取XML
- 配置
XmlReaderSettings忽略无关空白,再遍历表格自动修剪单元格内容:
DataSet dataSet = new DataSet(); XmlReaderSettings settings = new XmlReaderSettings(); // 跳过XML元素之间的空白节点(比如标签间的换行、缩进) settings.IgnoreWhitespace = true; using (XmlReader reader = XmlReader.Create(filePath, settings)) { dataSet.ReadXml(reader); } // 遍历所有单元格,修剪字符串前后的空白字符 foreach (DataTable table in dataSet.Tables) { foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { if (row[col] is string text) { row[col] = text.Trim(); } } } } dataGridView1.DataSource = dataSet.Tables[0];
说明
settings.IgnoreWhitespace = true仅处理元素之间的空白节点,不会修改元素内部文本的前后空白;- 后续遍历表格的代码会自动清理每个字符串单元格的缩进、换行和多余空格,正好解决你遇到的问题;
- 这种方式比完全自定义XML读取逻辑更简洁,同时满足自动消除空白的需求。
内容的提问来源于stack exchange,提问作者Karker Carnesir
相关产品推荐
相关产品推荐

