Я начал разработку на Windows Phone с помощью Appcelerator. Я использую код своего Android в качестве базы, и, делая это, я столкнулся с определенной проблемой анализа XML. Это XML-строка:Appcelerator Windows Phone XML Parsing Error
<returnXml>
<methodStatus>
<statusType>success</statusType>
</methodStatus>
<parametersReturn />
</returnXml>
И это код, который я пытаюсь запустить:
var xml = Ti.XML.parseString(xmlString);
var statusType = xml.evaluate("/returnXml/methodStatus/statusType").item(0).text;
Приведенный выше код прекрасно работает на Android, а на Windows Phone я получаю:
TypeError: xml.evaluate is not a function
Так что я пытался использовать следующий код вместо:
getElementsByTagName("statusType")
Но кажется, что либо функции не поддерживаются для телефона Windows, либо я здесь ошибаюсь. Должен ли я делать что-то еще или я должен искать внешнюю библиотеку XML Parser для JavaScript? Если да, пожалуйста, обратитесь.
Спасибо, проблема в том, что DOM Level 3 API не был реализован для Windows Phone, как сообщается в PR. И да, ** getElementsByTagName ** работает с использованием _textContent_ вместо _text_. Обходным путем является использование ** getElementsByTagName **, но как его реализовать, чтобы работать аналогично выражению xPath, поскольку у меня есть несколько узлов пути для оценки. Основная проблема возникает, когда я должен получить доступ к определенному узлу в Пути, но могут быть аналогичные узлы и на других путях. i.e Как я различаю узлы statusType в '/ path1/methodStatus/statusType' и'/path2/otherStatus/statusType'? –
Ну, это некрасиво, но вы можете сделать getElementsByTagName ("statusType"), затем перебрать результаты и проверить node.parentNode.tagName для каждого, чтобы убедиться, что это то, что вы хотите. –