2015-02-11 4 views
1

Я пытаюсь импортировать этот канал XML в к таблице Google: http://cloud.tfl.gov.uk/TrackerNet/LineStatusGoogle Spreadsheet ImportXML XPath вопрос

, но я не могу показаться, чтобы получить право XPATH для подачи должен быть проанализирован.

Я пробовал:

=importxml("http://cloud.tfl.gov.uk/TrackerNet/LineStatus","/ArrayOfLineStatus") 

и

=importxml("http://cloud.tfl.gov.uk/TrackerNet/LineStatus","/arrayoflinestatus//linestatus[1]@statusdetails")  

несколько другие, но не повезло. Я использовал http://xmltoolbox.appspot.com/xpath_generator.html, чтобы попытаться получить Xpath.

Edit:

Вот отредактированная версия XML:

<ArrayOfLineStatus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://webservices.lul.co.uk/"> 
<LineStatus ID="0" StatusDetails=""> 
<BranchDisruptions/> 
<Line ID="1" Name="Bakerloo"/> 
<Status ID="GS" CssClass="GoodService" Description="Good Service"  IsActive="true"> 
<StatusType ID="1" Description="Line"/> 
</Status>  
<LineStatus ID="81" StatusDetails=""> 
<BranchDisruptions/> 
<Line ID="81" Name="DLR"/> 
<Status ID="GS" CssClass="GoodService" Description="Good Service" IsActive="true"> 
<StatusType ID="1" Description="Line"/> 
</Status> 
</LineStatus> 
</ArrayOfLineStatus>  
+0

К сожалению, я бы поставил неправильно URL. Я исправил его сейчас и некоторые из XML, которые он возвращает. – Rob

ответ

1

Ваши ImportXML() звонки не работают, потому что с точки Google зрения выхода из данного URL не является хорошо сформированным XML. Я столкнулся с этой проблемой много раз, и поскольку у вас нет инструментов/опций, которые вы могли бы использовать для предварительной обработки входящих данных в формате, который Google Spreadsheet примет, вы должны отказаться.
(Пожалуйста, обратите внимание, я никогда не говорил, что нет ничего плохого с файлом я думаю, что обращение Google для листа из XML далека от идеала, но не то, что я могу исправить.)
Ваши варианты сейчас:

  1. использование один из многих созданных пользователем скриптов/функций рабочего листа, доступных в Интернете, для анализа вашего XML вместо этого.
  2. Используйте один из других import...() функций (например =IMPORTDATA("http://cloud.tfl.gov.uk/TrackerNet/LineStatus")) и пост-обработки результата
  3. использования Java-версия проверки состояния и скоблить, что вместо того, чтобы: (=IMPORTHTML("http://www.tfl.gov.uk/tfl/syndication/feeds/esubs/portrait-27.html","table",1))
+0

В частности, импорт кажется неудачным, поскольку в этом документе есть пространство имен по умолчанию. –

+0

Спасибо - это полезно знать. Тогда я попытаюсь обработать версию = IMPORTDATA. – Rob

+0

Работает IMPORTXML(). Проблема с xPath. –

0

Результаты формул предоставляемые OP, пусты, потому что файл использует пространство имен.

Примечание: использование ImportXml xPath 1.0

Попробуйте следующее:

  1. Создать новый файл.
  2. Добавить следующее.

A1: URL-адрес файла XML.
A2: Запрос xPath. Двойная проверка того, что это приведет, не будет пустым.
A3: =IMPORTXML(A1,A2)

Пример 1: Нижеследующее не использует позицию вместо имени узла.

+ --------------------------------------------- + 
    |      A       | 
    + --------------------------------------------- + 
    1 | http://cloud.tfl.gov.uk/TrackerNet/LineStatus | 
    2 | /*/*[position()<10]/@ID       | 
    3 |            0 | 
    4 |            1 | 
    5 |            10 | 
    6 |            2 | 
    7 |            8 | 
    8 |            4 | 
    9 |            9 | 
10 |            5 | 
11 |            6 | 
    + --------------------------------------------- + 

Пример 2: Следующий использовать тестовый предикат, используя локальное имя-функции()

+ --------------------------------------------- + 
    |      A       | 
    + --------------------------------------------- + 
    1 | http://cloud.tfl.gov.uk/TrackerNet/LineStatus | 
    2 | //*[local-name() = 'Line']/@Name    | 
    3 | Bakerloo          | 
    4 | Central           | 
    5 | Circle           | 
    6 | District          | 
    7 | Hammersmith and City       | 
    8 | Jubilee           | 
    9 | Metropolitan         | 
10 | Northern          | 
11 | Piccadilly          | 
12 | Victoria          | 
13 | Waterloo and City        | 
14 | Overground          | 
15 | TfL Rail          | 
16 | DLR            | 
17 | Trams           | 
    + --------------------------------------------- + 

См вышеприведенные примеры работающих: File

Смежные вопросы