【发布时间】:2019-10-25 19:30:29
【问题描述】:
我想获取一个xml标签的id
例如
<name id ="john">
我想得到 john 的 id,
我的代码:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
My.Computer.Network.DownloadFile(
"https://example.net/file.xml",
"files/file.xml")
Dim reader As New XmlTextReader("files/file.xml")
While reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
listBox1.Items.Add("<" + reader.Name & ">")
Exit Select
Case XmlNodeType.Text
listBox1.Items.Add(reader.Value)
Exit Select
Case XmlNodeType.EndElement
listBox1.Items.Add("")
Exit Select
End Select
End While
End Sub
End Class
文件.xml:
<?xml version="1.0"?>
<map>
<name id="john" revision="990000237">
<part id="3554" type="ca"/>
<part id="3555" type="ca"/>
</name>
<name id="well" revision="990000236">
<part id="3551" type="he"/>
</name>
我不知道是否有这个功能,但我想知道是否有办法做到这一点,我将使用 WHILE 从标签中获取所有 id。
【问题讨论】:
-
If reader.HasAttributes=>reader.AttributeCount=>reader.Getattribute(0)或reader.GetAttribute("id") -
(Why should I use exit select? - 基本上,你不应该。)
-
如果您改为loaded the XML into an XmlDocument,则可以使用
Dim desiredId = x.SelectSingleNode("//name/@id")?.Value,这比使用XDocument 简单一些。 (.NET 中有几个与 XML 相关的东西,找到最简单的一个来获得你想要的结果似乎是成功的一半。) -
谢谢大家用jdweng的代码解决了