Одиночный закрывающий тег XML не выделяется при десериализации - PullRequest
0 голосов
/ 20 марта 2020

Я использую VB. NET для десериализации файла XML, полная информация о моих попытках сделать это находится в этом вопросе . У меня возникла проблема при разборе этого тега в XML:

<re_nokanji/>

Он появляется сам по себе, в тегах <r_ele> и </r_ele>. Вот пример:

<r_ele>
<reb>アジア</reb>
<re_nokanji/>
<re_pri>gai1</re_pri>
</r_ele>

Вот определение класса:

<Serializable()>
Public Class r_ele
    <XmlElement("reb")>
    Public Property reb As String
    <XmlElement("re_pri")>
    Public Property re_pri As List(Of String)
    <XmlElement("re_inf")>
    Public Property re_inf As List(Of String)
    <XmlElement("re_restr")>
    Public Property re_restr As List(Of String)
    <XmlElement("re_nokanji")>
    Public Property re_nokanji As String
End Class

Все остальные данные десериализованы просто отлично, поэтому я не думаю, что метод является проблемой, но просто на случай, если он здесь:

Dim dict As JMdict 

Sub Deserialise()
    Dim settings As XmlReaderSettings = New XmlReaderSettings
    settings.DtdProcessing = DtdProcessing.Parse

    Dim xmlPath As String = Path.Combine(Application.StartupPath, jmdictpath)

    Dim serialiser As New XmlSerializer(GetType(JMdict))

    Using rdr As Xml.XmlReader = Xml.XmlReader.Create(xmlPath, settings)
        dict = CType(serialiser.Deserialize(rdr), JMdict)
    End Using
End Sub

Я использовал отдельный метод для проверки объекта dict, и ни один из объектов класса внутри него не имеет значения для поля re_nokanji, так что это определенно не забирается. Есть идеи, почему это может быть?

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