我刚刚才刚刚开始使用XML字符串。我现在在做的是使用web服务从数据库中提取记录。它返回以下输出:从XML字符串到datagridview或数据表的特定元素(C#)
<?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>
我想要实现的是将显示给用户的datatable/datagridview。这将是这样的:
| 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>) (& LT & GT &放大器等)在现场文本。有没有人有任何建议,我可以删除/转义/解码之前写入他们的数据表?
我很惊讶“字段”被接受为DataMember名称。 –
你的'ds.Tables.Count'是什么?我认为它是2,你需要从元数据开始选择连接。 –