Простой вопрос XPath для iPhone - PullRequest
3 голосов
/ 01 мая 2010

Эй, ребята! Это сводит меня с ума! Вот мой документ XML

<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
   <rootfiles>
        <rootfile full-path="content.opf" media-type="application/oebps-package+xml"/>
    </rootfiles>
</container>

Все, что я хочу сделать, это получить элемент корневого файла. Я использую TouchXML на iPhone, и вот мой запрос xPath:

/container/rootfiles/rootfile

Это не работает! Я перепробовал все. Любая помощь будет оценена ... Sam

Ответы [ 2 ]

2 голосов
/ 01 мая 2010

Этот бит xmlns в узле container является префиксом пространства имен, который может иметь ваш регистр запросов.

Я недостаточно хорошо знаю TouchXML, чтобы сказать, что это за решение, но соответствующий вызов libxml2 будет xmlXPathRegisterNs(), если вы пойдете во внутренности TouchXML.

Этот SO ответ может также помочь вам указать правильный метод TouchXML, который будет использоваться для регистрации этого пространства имен.

1 голос
/ 01 мая 2010

Я не специалист по TouchXML, но это может вам помочь.

Существует также несколько некрасивое решение XPath .

Использование:

/*[name()='container']/*[name()='rootfiles']/*[name()='rootfile']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...