获取单个 XML 属性值
Get single XML Attribute Value
给定以下 XML -
<Response>
<Item name="ItemA" />
</Response>
如何获取名称属性的值?
我尝试了几种方法都没有成功,这是最后一次尝试-
(注意写'xml'的内容到控制台显示上面的XML)
Dim doc As XDocument = XDocument.Load(xml)
Dim result = From x In doc.Descendants("Item") Select x.Attribute("Name").Value
Console.WriteLine(result)
结果输出:"System.Linq.Enumerable.WhereSelectEnumerableIterator[Of System.Xml.Linq.XElement, String]"
谢谢,
对于确切的 XML 结构,您可以执行以下操作:
Dim result = doc.Root.Element("Item").Attribute("name").Value
请注意 Element()
returns 给定名称的单个子元素。
如果涉及 XML 命名空间,正如您在下面的评论中提到的,您需要结合使用 XNamespace
和元素的本地名称来引用 Item
元素 :
Dim path As XNamespace = "path"
Dim result = doc.Root.Element(path+"Item").Attribute("name").Value
我更喜欢 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
给定以下 XML -
<Response>
<Item name="ItemA" />
</Response>
如何获取名称属性的值?
我尝试了几种方法都没有成功,这是最后一次尝试- (注意写'xml'的内容到控制台显示上面的XML)
Dim doc As XDocument = XDocument.Load(xml)
Dim result = From x In doc.Descendants("Item") Select x.Attribute("Name").Value
Console.WriteLine(result)
结果输出:"System.Linq.Enumerable.WhereSelectEnumerableIterator[Of System.Xml.Linq.XElement, String]"
谢谢,
对于确切的 XML 结构,您可以执行以下操作:
Dim result = doc.Root.Element("Item").Attribute("name").Value
请注意 Element()
returns 给定名称的单个子元素。
如果涉及 XML 命名空间,正如您在下面的评论中提到的,您需要结合使用 XNamespace
和元素的本地名称来引用 Item
元素 :
Dim path As XNamespace = "path"
Dim result = doc.Root.Element(path+"Item").Attribute("name").Value
我更喜欢 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