我最近才开始使用 XML 字符串。我现在正在做的是使用网络服务从数据库中提取记录。它返回以下输出:
<?xml version="1.0" encoding="utf-16"?>
<Records count="2">
<Metadata>
<FieldDefinitions>
<FieldDefinition id="13597" name="Statement" alias="Statement" />
<FieldDefinition id="13598" name="Response" alias="Response" />
</FieldDefinitions>
</Metadata>
<Record contentId="154321" moduleId="409">
<Field id="13597" type="1"><p>This is a database record</p></Field>
<Field id="13598" type="1"><p>This is a record</p></Field>
</Record>
<Record contentId="154755" moduleId="409">
<Field id="13597" type="1"><p>This is another database record</p></Field>
<Field id="13598" type="1"><p>And another corresponding record</p></Field>
</Record>
</Records>
我想要实现的是一个将显示给用户的数据表/数据网格视图。这将是这样的:
| Statement | Response |
|This is a datab..| This is a corr.|
|This is another..| And another....|
我试过以下代码:
private void WriteDataGrid(string xml)
{
DataSet ds = new DataSet();
XmlTextReader reader = new XmlTextReader(xml, XmlNodeType.Document, null);
ds.ReadXml(reader);
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Field";
}
然而,它只设法获得了这个:
| id | type | Field_Text |
|13597 | 1 | This is a... |
|13598 | 1 | This is a corr...|
|13597 | 1 | This is anoth... |
|13598 | 1 | And anothe... |
我计划使用 xml 中的字段 id 创建唯一列,然后根据包含的值设置行的值。但我不确定我应该如何去做。有人可以帮忙吗?还是有更好的方法让我实现我想要做的事情?
我知道如果元素是唯一的会容易得多,但我无法以任何方式更改 Web 服务的输出。
任何帮助将非常感激。
编辑:
我刚刚意识到我忽略了在字段文本中添加 XML 字符串将包含 HTML 标记和标记(特别是< p > </ p >)(< > &等)。有人对我如何在将它们写入数据表之前删除/转义/解码它们有任何建议吗?