代码之家  ›  专栏  ›  技术社区  ›  Kosta

如何在引用数据集中的表时指定命名空间

  •  0
  • Kosta  · 技术社区  · 17 年前

    我正在使用readxml方法将数据从XML文件加载到数据集中。这会产生两个同名的表。其中一个表有一个命名空间,另一个没有。我正试图用该命名空间引用表。有人能告诉我怎么做吗?

        Dim reader As XmlTextReader = New XmlTextReader(strURL)
        Dim city as string = ""
        Dim ds As DataSet = New DataSet()
        ds.Namespace = "HomeAddress"
    
        ds.ReadXml(reader)        
        city = ds.Tables("Address").Rows(0).Item(2).ToString()
    
    2 回复  |  直到 17 年前
        1
  •  0
  •   hearn    17 年前

    来自MSDN: DataSet.Namespace

    命名空间属性在以下情况下使用: 读写XML文档 在使用readxml的数据集中, writexml、readxmlschema或 WriteXmlSchema方法。

    XML文档的命名空间为 用于确定XML属性范围和 读取到数据集中时的元素。为了 示例,如果数据集包含 从文档中读取的架构 名称空间为“MyCompany”,并且 试图只从中读取数据 具有不同命名空间的文档, 任何不符合 已忽略现有架构。

    以下示例设置前缀 在调用readxml方法之前。

    private void ReadData(DataSet thisDataSet)
    {
        thisDataSet.Namespace = "CorporationA";
        thisDataSet.Prefix = "DivisionA";
    
        // Read schema and data.
        string fileName = "CorporationA_Schema.xml";
        thisDataSet.ReadXmlSchema(fileName);
        fileName = "DivisionA_Report.xml";
        thisDataSet.ReadXml(fileName);
    }
    

    我看不到您给出的示例,但是除非您在加载之前设置了前缀,否则您将无法读取与现有模式不对应的数据。

        2
  •  0
  •   Kosta    17 年前

    我找到了答案。可以将命名空间作为第二个参数传递。我想我没有注意到这个特别的超负荷在智能意义上。

    ds.Tables("Address", "HomeAddress").Rows(1).Item(2).ToString()