0
我想解析出一個XML文件使用LINQ(XDocument),並有一些關於在文檔中有一個命名空間,將所有東西都擰緊。VB 2010命名空間的XML文件造成麻煩
我發現this SO question about the same thing影響元素名稱,並且我已經過去了(使用Name.LocalName
屬性)。但它導致與其他功能相同的問題,例如獲取具有特定名稱的元素。例如:
在簡短的XML代碼:
<FeatureDefinitions xmlns="http://website.com/schema/features">
<FeatureDefinition Name="FeatureOne" >
<Attributes>
<ListAttribute Name="TYPE" Description="MATERIAL USED.">
<ListItems>
<Item>Material 1</Item>
<Item>Material 2</Item>
<Item>OTHER </Item>
</ListItems>
</ListAttribute>
<ListAttribute Name="POSITION">
<ListItems>
<Item>BEGIN</Item>
<Item>EDGE</Item>
<Item>END</Item>
<Item>TOE</Item>
<Item>TOP</Item>
</ListItems>
</ListAttribute>
<StringAttribute Name="NOTES" />
</Attributes>
</FeatureDefinition>
</FeatureDefinitions>
然後在代碼:
Dim nodeFeatureDef as XElement = nodeFeatureDefinitions.Element("Attributes")
那麼,什麼正在發生的是,當該命名空間包含在第一行XML,我無法獲得element("Attributes")
及其關聯的節點。但是,如果我刪除第一行中的命名空間屬性,它工作正常。
有很多論壇建議VB源代碼導入命名空間,但我不能確定每個文件,這個進程將具有相同的命名空間。它通過使用Name屬性的Name.LocalName
屬性工作,但我不知道如何對Elements屬性執行相同的操作。
任何想法?
謝謝!
我認爲我們有一個贏家!對我的應用程序的代碼結構稍作修改,至今似乎完美無瑕。謝謝! –