获取单个XML属性值

时间:2017-05-14 04:45:38

标签: xml vb.net linq-to-xml

给出以下XML -

<Response>
  <Item name="ItemA" />
</Response>

如何获取name属性的值?

我尝试了几种没有运气的方法,这是最后的尝试 - (请注意,将&#39; xml&#39;的内容写入控制台会显示上述XML)

Dim doc As XDocument = XDocument.Load(xml)
Dim result = From x In doc.Descendants("Item") Select x.Attribute("Name").Value
Console.WriteLine(result)

输出结果:&#34; System.Linq.Enumerable.WhereSelectEnumerableIterator [Of System.Xml.Linq.XElement,String]&#34;

谢谢,

2 个答案:

答案 0 :(得分:2)

对于确切的XML结构,您可以执行以下操作:

/etc/init.d/lighttpd restart

请注意Dim result = doc.Root.Element("Item").Attribute("name").Value 返回给定名称的单个子元素。

如果涉及XML名称空间,正如您在下面的评论中所提到的,您需要使用Element()和元素的local-name的组合来引用XNamespace元素:

Item

答案 1 :(得分:1)

我更喜欢XElement,更少打字。

    Dim xe As XElement
    ' to load from a file
    ' Dim yourpath As String = "your path here"
    ' Dim xe As XElement = XElement.Load(yourpath)

    ' for testing
    xe = <Response>
             <Item name="ItemA"/>
         </Response>

    Dim result As String = xe.<Item>.@name '<<<<<<<<<<<<<<<<<<< answer