Member 13366692 Ответов: 2

Шестнадцатеричные значения не могут быть включены в имя VB.NET


Я пытаюсь написать код для вставки элементов в существующий xml-файл ,я хочу, чтобы элементы в файле были такими:
<item>
  <title><![CDATA[any title]]></title>
  <link>http://any link</link>
  <pubDate>any date</pubDate>
  <guid isPermaLink="true">any link</guid>
  <description><![CDATA[any description]]></description>
        <media:credit role="author"><![CDATA[any author]]></media:credit>
  <media:category><![CDATA[any category]]></media:category>
  <media:content url="http://any link" height="266" width="127" /> 
  <media:thumbnail url="http://any link" height="266" width="127" />
</item>

поэтому я должен написать этот код :
Dim FilePath As String
        FilePath = "C:\Users\MONZER\Desktop\Karary Web Site\WebApplication1\XMLFile1.xml"
        Dim document As New XDocument
        If File.Exists(FilePath) Then
            document = XDocument.Load(FilePath)
        Else
            Label1.Text = "not done"
        End If

        Dim root = New XElement("item")
        Dim title = New XElement("title", "<![CDATA[" & TextBox3.Text & "]]>")
        Dim link = New XElement("link", TextBox6.Text)
        Dim pubDate = New XElement("pubDate", DateTime.Now.ToString("yyy/MM/dd HH:mm"))
        Dim description = New XElement("description", TextBox5.Text)
        Dim author = New XElement("media:credit",
                                      New XAttribute("role", "author"),
                                      New XAttribute("><![CDATA[", TextBox5.Text + "]]>"))

        root.Add(title, link, pubDate, description, author)
        document.Root.Add(root)
        document.Save(FilePath)
        Label1.Text = "done"

    End Sub

Я получил эту ошибку :
Символ':', шестнадцатеричное значение 0x3A, не может быть включен в имя.

Что я уже пробовал:

определите ab как xnamespace
ab="media:credit", затем используйте его как :
Dim author = New XElement(ab.tostring,
Новый атрибут XAttribute("роль", "автор"),
Новый атрибут XAttribute("><![CDATA[", TextBox5.Text + "]]>"))
но и это не сработало!

2 Ответов

Рейтинг:
8

Dave Kreskowiak

Вы пытаетесь назвать элемент "медиа:кредит". Ты не можешь этого сделать. Уберите двоеточие и переименуйте элемент во что-нибудь другое.


Рейтинг:
13

Patrice T

Цитата:
Шестнадцатеричные значения не могут быть включены в имя VB.NET

Нет, внимательно прочитайте сообщение об ошибке !
Цитата:
Этот ':' характер, которые имеют шестнадцатеричное значение 0x3A не может быть включено в имя.

Имя персонажа колонка ':'
Этот символ зарезервирован операционной системой и не может быть использован в имени файла.