У меня есть набор кода, который ищет человека определенного роста, который пользователь выбирает в поле со списком, после чего удаляет все предметы, которые не совпадают в списке. Значения для поля со списком такие: 5'0-5'5
. Моя проблема в том, что апострофы в 5'0-5'5
вызывают ошибки. Вот мой код
If ComboBox5.Value <> "" Then
i = 0
Do While i <= ListBox26.ListCount - 1
Set CheckHeight = objDom.SelectSingleNode("//IDNum/LastName[@LName = '" _
& LastName.Text & "']/FirstName[@FName='" & FirstName.Text _
& "']/DateOfBirth[@DOB='" & Dob.Text & "']/Height[.='" _
& ComboBox5.Value & "']")
If CheckHeight Is Nothing Then
ListBox26.RemoveItem (i)
Else
i = i + 1
End If
Loop
XML выглядит следующим образом:
<LastName LName="Rodriguez Jesus Luis">
<FirstName FName="Armondo">
<DateOfBirth DOB="7/10/1975">
<Hair>Black</Hair>
<Eyes>Brown</Eyes>
<Weight>150 - 175 lbs</Weight>
<Height>5'6 - 5'9</Height>
</DateOfBirth>
</FirstName>
</LastName>
Я пробовал заменить один апостроф "'" двумя "''", пробовал Chr(39), пробовал '
, но все равно ошибки.
Я могу заставить его работать, если использую getElementsByTagName
и напишу еще кучу кода для сравнения и удаления, но я решил использовать приведенный выше код, поскольку он работает со всеми остальными полями, которые я использую.
Ошибка, которую я получаю:
Ожидаемый токен ']' найден 'NUMBER'.
//Идентификатор/Фамилия[@LName = 'Rodriguez Jesus Luis']/Имя[@FName='Armondo']/ДатаРождения[@DOB='7/10/1975']/Рост[.='5'--> 0‹-- - 5'3']