Мой xml изменяет все узлы с текстовым значением, установленным как "", на отсутствие значения для текста, как я могу это остановить? - PullRequest
0 голосов
/ 05 августа 2020

Когда я пытаюсь изменить значение узла в моем xml файле, каждый xml узел, для которого я установил текстовое значение, которое не было ничего ie text = "", автоматически устанавливается на отсутствие текста. значение вообще, а не просто текстовое значение, которое имеет значение NULL. Мне было интересно, есть ли способ остановить это.

Чтобы показать, что я имею в виду:

    <Classes>
      <_1_08_2020>
        <Morning>
          <Client1>
            <Payed></Payed>
            

оплаченный элемент имеет текстовое свойство, которое пусто, но после того, как я повторно сохраню xml файл автоматически становится следующим:

        <Classes>
          <_1_08_2020>
            <Morning>
              <Client1>
                <Payed>
                </Payed>

без текстового значения. Проблема возникает, когда я пытаюсь использовать этот код

Dim Classes As New XmlDocument
    Classes.Load("Classes.xml")

    Dim attrClient1Payed As XmlNode
    attrClient1 = Classes.SelectSingleNode("/Classes/" & strDate & "/" & strMorningAfternoon & "/Client1/Payed")
    If attrClient1Payed.InnerText = ""
       'do the thing i want
    End if

, он выдает исключение, в котором говорится, что attrClient1Payed не был ничем в третьей последней строке.

1 Ответ

0 голосов
/ 06 августа 2020

Вы объявляете свою переменную как

 Dim attrClient1Payed As XmlNode

Затем используйте другое имя переменной:

    attrClient1 = Classes.SelectSingleNode("/Classes/" & strDate & "/" & strMorningAfternoon & "/Client1/Payed")

Вам нужно сделать это:

    attrClient1Payed = Classes.SelectSingleNode("/Classes/" & strDate & "/" & strMorningAfternoon & "/Client1/Payed")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...