【问题标题】:DataSet ReadXml ignores the attributes with prefixDataSet ReadXml 忽略带前缀的属性
【发布时间】:2014-08-06 15:58:44
【问题描述】:

我有以下要读入数据集的 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:\QVT\runtime-EclipseApplication\dr5\HJYU.jlqn");

但是当我检查数据集时,我注意到所有带前缀的属性都没有被读取..例如:xsi:type="jlqn:Processor"

我能做什么?

【问题讨论】:

    标签: c# xml visual-studio-2010 xml-parsing dataset


    【解决方案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);
        }
    }
    

    【讨论】:

    • 谢谢,但 "xsi:type="jlqn:Processor" 仍然没有被填充到数据集中!
    猜你喜欢
    • 2020-06-25
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2010-12-19
    • 2014-12-09
    • 1970-01-01
    相关资源
    最近更新 更多