VB.NET ~ Нужна помощь в разборе XML, загруженного в richtextbox (загружается из URL) - PullRequest
0 голосов
/ 15 декабря 2011

У меня есть два полноразмерных текстовых поля и две кнопки на моем экране.Первая кнопка извлекает HTML из URL, а затем преобразует HTML в XML, который находится в поле расширенного текста 1.

Вторая кнопка предназначена для извлечения XML из поля расширенного текста1, а затем синтаксического анализа, чтобы захватить всеэлементы ввода по их идентификатору.

Моя проблема в том, что мой анализатор ничего не делает.Я предполагаю, что я не совсем получаю XML из первого текстового поля.

Каков наилучший способ получить XML из текстового поля, загрузить его в память и затем проанализировать XML длязахватить все теги ID?

Вот мой код - Спасибо за любую помощь.

Imports mshtml
Imports System.Text
Imports System.Net
Imports System.Xml
Imports System.IO
Imports System.Xml.XPath

Public Class Scraper

    Private Sub Scraper_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '  Note: This example uses two Chilkat products: Chilkat HTTP
        '  and Chilkat HTML-to-XML.  The "Chilkat Bundle" can be licensed
        '  at a price that is less than purchasing each product individually.
        '  The "Chilkat Bundle" provides licenses to all existing Chilkat components.  Also, new-version upgrades are always free.

        Dim http As New Chilkat.Http()

        '  Any string argument automatically begins the 30-day trial.
        Dim success As Boolean
        success = http.UnlockComponent("30-day trial")
        If (success <> True) Then
            TextBox1.Text = TextBox1.Text & http.LastErrorText & vbCrLf
            Exit Sub
        End If

        Dim html As String
        html = http.QuickGetStr("http://www.quiltingboard.com/register.php")
        If (html = vbNullString) Then
            TextBox1.Text = TextBox1.Text & http.LastErrorText & vbCrLf
            Exit Sub
        End If

        Dim htmlToXml As New Chilkat.HtmlToXml()

        '  Any string argument automatically begins the 30-day trial.
        success = htmlToXml.UnlockComponent("30-day trial")
        If (success <> True) Then
            TextBox1.Text = TextBox1.Text & htmlToXml.LastErrorText & vbCrLf
            Exit Sub
        End If

        '  Indicate the charset of the output XML we'll want.
        htmlToXml.XmlCharset = "utf-8"

        '  Set the HTML:
        htmlToXml.Html = html

        '  Convert to XML:
        Dim xml As String
        xml = htmlToXml.ToXml()

        '  Save the XML to a file.
        '  Make sure your charset here matches the charset
        '  used for the XmlCharset property.
        htmlToXml.WriteStringToFile(xml, "out.xml", "utf-8")

        RichTextBox1.Text = xml
    End Sub

    Private Sub LoopThroughXmlDoc(ByVal nodeList As XmlNodeList)
        For Each elem As XmlElement In nodeList
            If elem.HasChildNodes Then
                LoopThroughXmlDoc(elem.ChildNodes)
            Else
                '' Extract the information
                If elem.HasAttribute("id") Then
                    'elem.Attributes("AssetID").Value.ToString()
                ElseIf elem.HasAttribute("name") Then
                    'elem.Attributes("AttributeID").Value.ToString()
                End If
            End If
        Next
    End Sub

    Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim doc As XmlDocument = New XmlDocument
        doc.Load("xmlFile.xml")
        Dim nodeList As XmlNodeList = doc.GetElementsByTagName("input")
        LoopThroughXmlDoc(nodeList)
    End Sub
End Class

1 Ответ

0 голосов
/ 15 декабря 2011

Вторая кнопка не извлекает XML из RichTextBox, она пытается загрузить его из xmlFile.xml.

Этот файл отличается от того, который сохранен в button1, которая отсутствует.xml.

Если пользователь может изменить XML в richtextbox, то решение состоит в том, чтобы изменить код в button2 для извлечения текста из RTB.

В противном случае решение состоит вимя файла, который читается в button2 в out.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...