2009-11-04 3 views
0

Допустим, это расположение элементов: < .Location> бла ... < ./location>Проверка пустоты элемента в Hpricot

Это может быть пустым, как это: < .Location />

Есть ли способ обнаружить обратную косую черту в пустом элементе, чтобы не вернуть его?

ответ

1

Если то, что вы действительно хотите это текст внутри тегов местоположения, вы можете найти их легко с правой XPath:

doc.search('//location/text()') 

Если по какой-то причине, вы на самом деле нужно само расположение элемента, используйте это:

doc.search('//location/text()/..') 
+0

большое спасибо, что это будет исправлено таким образом, достаточно. на самом деле, читая xml из моего браузера, он фактически отображает <.location/>, но hpricot просто откройте тег и приложите остальную часть документа; следовательно, проблема. – Ben

0

<location/> семантически идентичен <location></location>, и должны рассматриваться в качестве таковых. Чтобы найти все пустые теги, просто пропустите элементы, у которых нет дочерних узлов (включая текст).

+0

Чтобы понять, этот метод flikr api касается: http://www.flickr.com/services/api/flickr.people.getInfo.html. Когда .. пуст, Hpricot возвращает его, как если бы он получал что-то вроде ... ... и т.д ..., в словах, как если бы место было вмещающих больше, чем должно быть. Из браузера вы можете видеть, что flickr возвращается . Очень запутанной. – Ben

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