Нокогири нашел только один элемент вместо трех - PullRequest
2 голосов
/ 18 апреля 2011
#src
<ExpenseType name="Verpfl24" calcQty="24"  showTip="0"  tipText=""  selfTax="0"  showForeign="0"  description="Verpflegungsmehraufwand 24 Stunden" />
<ExpenseType name="Verpfl14" calcQty="14"  showTip="0"  tipText=""  selfTax="0"  showForeign="0"  description="Verpflegungsmehraufwand 14 Stunden" />
<ExpenseType name="Verpfl8" calcQty="8"  showTip="0"  tipText=""  selfTax="0"  showForeign="0"  description="Verpflegungsmehraufwand 8 Stunden" />

doc = Nokogiri::XML(src)
items = doc.search("/ExpenseType")
items.size # 1 instead of 3

Я провел некоторое исследование и обнаружил:

doc.document.to_s 

"<?xml version="1.0"?>\n<ExpenseType name="Verpfl24" calcQty="24" showTip="0" tipText="" selfTax="0" showForeign="0" description="Verpflegungsmehraufwand 24 Stunden"/>\n"

Что я делаю не так?

Я хочу просто все элементы ExpenseType из этого xml

1 Ответ

2 голосов
/ 18 апреля 2011

XML-документ (в отличие от xml-фрагмента) может содержать только один элемент верхнего уровня.Поместите некоторый элемент <wrapper> вокруг входной строки, и вы сможете найти все три типа расходов.

...