我一直在使用VB.net中的XML,这与你在C#中的方式有很大的不同, 它接缝更自然地遍历节点。然后,您会遇到命名空间。
首先,我使用了以下导入:
Imports <xmlns:mstns="http://tempuri.org/myDataSet.xsd">
Imports <xmlns="http://tempuri.org/MyDataSet.xsd">
Imports <xmlns:xs="http://www.w3.org/2001/XMLSchema">
Imports <xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
Imports <xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
然后我尝试像这样访问TableAdapter节点:
Dim doc As XDocument
Dim tableAdapters As XElement
doc = XDocument.Load(file.FullName)
tableAdapters = (From item As XElement In doc.<xs:schema>.
<xs:annotation>.
<xs:appinfo>.
<DataSource>.
<Tables>.
<TableAdapter>
Select item).FirstOrDefault()
[忽略换行符,我只是为了可读性而这样做]
我可以正确地获取节点,直到xs:appinfo,之后,我尝试检索的任何节点都为空
我做错了什么?
以下是数据集的正常xml结构:
答案 0 :(得分:0)
所以要解决它,你喜欢这样:
添加另一个导入,其命名空间为xmlns,在节点中找到属性:
Imports <xmlns:datasource="urn:schemas-microsoft-com:xml-msdatasource">
然后像这样检索:
tableAdapters = (From item As XElement In doc.<xs:schema>.
<xs:annotation>.
<xs:appinfo>.
<datasource:DataSource>.
<datasource:Tables>.
<datasource:TableAdapter>
Select item).FirstOrDefault()