Корневой элемент TBXML не имеет значения, что бы я ни делал - PullRequest
1 голос
/ 14 июля 2011

В течение нескольких часов ломал мой мозг, пытаясь понять это.TBXML должен иметь значение rootXMLElement, чтобы начать обход и анализ данных.

Независимо от того, что я делаю, когда я NSLog это, это ноль.

Вот пример XML:

<?xml version= "1.0" encoding="UTF8"?> 
<patients>
    <patient>
        <patientNumber>1234</patientNumber>
        <nameFirst>Jason</nameFirst>
        <!--more properties of a patient-->
    </patient>
    <patient>
        <patientNumber>5542</patientNumber>
        <nameFirst>Gary</nameFirst>
        <!--more properties of a patient-->
    </patient>
</patients>

Код, который я использую до сих пор:

NSURL *xmlURL = [NSURL URLWithString:destPath];
TBXML *tbxml = [TBXML tbxmlWithURL:xmlURL];

NSLog показывает tbxml.rootXMLElement как ноль.

Другие подробности примечания:

  1. Я использую скрипт ruby, чтобы удалить любые символы, не входящие в ASCII, из файла XML.Приложение не требует ничего больше.
  2. Мне показалось, что проблема может заключаться в том, что файл XML не был UTF-8, поэтому я использовал команду bash iconv для преобразования его из ASCII в UTF-8.Тоже не сработало.

Любые предложения с благодарностью.

1 Ответ

2 голосов
/ 14 июля 2011

Похоже, что это локальный XML, основанный на том факте, что вы предварительно обрабатываете его.Когда вы обрабатываете локальные пути к файлам как URL, вам нужно использовать fileURLWithPath:, чтобы он работал правильно.Так что вам нужно сделать это,

NSURL *xmlURL = [NSURL fileURLWithPath:destPath];
TBXML *tbxml = [TBXML tbxmlWithURL:xmlURL];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...