#c# #xml #visual-studio-2010 #xml-parsing #dataset
#c# #xml #visual-studio-2010 #синтаксический анализ xml #набор данных
Вопрос:
У меня есть следующий XML-код, который я хочу прочитать в наборе данных:
<?xml version="1.0" standalone="yes"?>
<jlqn:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:jlqn="http://jlqn/1.0">
<element xsi:type="jlqn:Processor" name="test1" processor="test">
<metadata name="Removed" value="False" />
<task id="6">
<entry id="8" entry="" />
</task>
</element>
<element xsi:type="jlqn:Processor" name="test1" processor="test" id="1">
<metadata name="Removed" value="True" />
<metadata name="Removed1" value="Removed1" />
</element>
<element xsi:type="jlqn:Processor" name="test1" processor="test" id="3">
<metadata name="Removed" value="False" />
<task id="45" name="">
<metadata />
<entry id="10" entry="">
<metadata />
</entry>
</task>
</element>
<element name="test" />
</jlqn:Root>
Я использую следующий код C #
DataSet newTable = new DataSet();
newTable.ReadXml(@"F:QVTruntime-EclipseApplicationdr5HJYU.jlqn");
Но когда я проверяю набор данных, я замечаю, что все атрибуты с префиксом не читаются .. например, так: xsi:type=»jlqn:Processor»
что я могу сделать?
Ответ №1:
XML ссылается на префикс пространства имен «xsi», но он не определен. Измените корневой элемент на:
<jlqn:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:jlqn="http://jlqn/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Как только я это сделал, я получил следующие таблицы и столбцы:
Root
Root_Id
version
element
element_Id
name
processor
id
Root_Id
metadata
name
value
element_Id
task
metadata
task_Id
id
name
element_Id
entry
metadata
id
entry
task_Id
Это вывод из:
DataSet newTable = new DataSet();
newTable.ReadXml(@"XMLFile1.xml");
foreach(DataTable table in newTable.Tables)
{
Console.WriteLine(table.TableName);
foreach(DataColumn column in table.Columns)
{
Console.WriteLine(" " column.ColumnName);
}
}
Комментарии:
1. Спасибо, но все же «xsi: type=»jlqn:Processor» не заполняется в наборе данных!