[英]Vb.net linq query on xml data
我在XML和LINQ方面还很陌生。 我有一个这样的XLM文件:
<?xml version="1.0" encoding="utf-8"?>
<Headers xmlns="http://tempuri.org/GridLayerSchema.xsd">
<Header>
<Name>Layer0</Name>
<Fields FieldID="FieldID0" FieldName="FieldNameAll" FieldPosition="0"FieldPositionStart="0" FieldLenght="254" FieldEnable="true" />
</Header>
<Header>
<Name>Layer1</Name>
<Fields FieldID="FieldID0" FieldName="JetPosition" FieldPosition="0" FieldPositionStart="0" FieldLenght="14" FieldEnable="true" />
<Fields FieldID="FieldID1" FieldName="Owner" FieldPosition="1" FieldPositionStart="14" FieldLenght="14" FieldEnable="true" />
<Fields FieldID="FieldID2" FieldName="Item" FieldPosition="2" FieldPositionStart="28" FieldLenght="3" FieldEnable="true" />
</Header>
</Headers>
我需要以两种方式浏览文件。
我已经做了一个LINQ查询以获取Name属性,但是没有用。
Dim xdoc As XDocument = XDocument.Load(My.Application.Info.DirectoryPath & "\Layers\Layers.xml")
Dim query = From el In xdoc...<Headers>
Select New Header With {.Name = el.@Name}
For Each e In query
HeadersCollection.Add(e)
Next
您将必须包含XML的命名空间,并且可以找到所有Header
元素。 这将为您提供正确的结果:
Dim ns As XNamespace = "http://tempuri.org/GridLayerSchema.xsd"
Dim query = From e1 In xdoc.Root.Elements(ns + "Header")
Select New With {.Name = e1.Element(ns + "Name").Value}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.