たとえば、ボタンのクリック イベントから URL (XML ページ) を開き、WebBrowser コントロールを使用して解析せずに XML ドキュメントの内容を読み取るにはどうすればよいでしょうか。
5753 次
3 に答える
1
と LINQ の使用に加えてXDocument
、他の人が示唆しているように、他にも 2 つの一般的なソリューションがあります。1 つはXmlDocument
XPath を使用する方法で、もう 1 つは XML シリアル化を使用する方法です。たとえば、次の XML ドキュメントがあるとします。
<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book Title="Book 1">
<Author>Author 1</Author>
<Chapter>Chapter 1</Chapter>
<Chapter>Chapter 2</Chapter>
</Book>
<Book Title="Book 2">
<Author>Author 1</Author>
<Chapter>Chapter 1</Chapter>
<Chapter>Chapter 2</Chapter>
</Book>
</Books>
XmlDocument
次に、次のように XPath で解析して検索できます(xml
は上記の XML を含む文字列です)。
Dim doc As New XmlDocument()
doc.LoadXml(xml)
Dim authorOfBook1 As String = doc.SelectSingleNode("/Books/Book[@Title = 'Book 1']/Author").InnerText
Dim booksByAuthor1 As XmlNodeList = doc.SelectNodes("/Books/Book[Author = 'Author 1']")
'etc.
または、シリアライゼーションを使用して XML ドキュメントをロードすることもできます。まず、いくつかのクラスでドキュメント構造を定義します。
Public Class Books
<XmlElement("Book")> _
Public Items As List(Of Book)
End Class
Public Class Book
<XmlAttribute()> _
Public Title As String
<XmlElement("Author")> _
Public Authors As List(Of String)
<XmlElement("Chapter")> _
Public Chapters As List(Of String)
End Class
次に、XML をその型のオブジェクトに逆シリアル化します。
Dim serializer As XmlSerializer = New XmlSerializer(GetType(Books))
Using reader As StringReader = New StringReader(xml)
Dim books As Books = CType(serializer.Deserialize(reader), Books)
'Analyze contents in books object
End Using
于 2012-08-10T21:02:24.960 に答える
1
XML を解析するには、LINQtoXMLライブラリ (.Net Framework 3.5 以降)を使用できます。
たとえば、次の形式の XML がある場合、
<rss>
<report name="rpt1">
<title>AAA</title>
<image>some1</image>
</report>
<report name="rpt2">
<title>BBB</title>
<image>some3333</image>
</rss>
このコードはそれを解析し、各項目のtitle
&を取得します。url
report
Dim path As String = "pathTosomexml.xml"
Dim elm As XElement = XElement.Load(path)
If elm IsNot Nothing Then
For Each page As var In elm.Elements("report")
Dim title = page.Element("title").Value
Dim url = page.Element("image").Value
Next
End If
于 2012-08-10T18:04:42.120 に答える
0
XDocument
を使用して にロードしXDocument.Load
ます。
これによりドキュメントが解析されるため、LINQ to XML を使用してクエリを実行できます。
于 2012-08-10T17:59:49.283 に答える