2013-07-16 4 views
1

Я пытаюсь разобрать файл XML с помощью dom пакета, но вот ошибка, которую я получил:TCL ошибка XML синтаксический

unterminatedattribute {invalid attribute list around line 4} 

Вот простой тест:

package require dom; 
set XML " 
    <Top> 
    <Name name='name' /> 
    <Group number=1> 
    <Member name='name1' test='test1' l=100/> 
    </Group> 
    </Top>" 
set doc [::dom::parse $XML] 

set root [$doc cget -documentElement] 

set node [$root cget -firstChild] 
puts "[$node cget -nodeValue]" 

ответ

2

Проблема заключается в том, что вы должны приложить значения элементов с помощью " или '. После исправления вашего XML синтаксический анализ был успешным.

Обычно я не использую пакет dom, вместо этого я использую пакет tdom.
Пакет tdom имеет опцию , которая позволяет свободно разбираться.

3

Этот «XML» фактически формально недействителен; все значения атрибутов должны быть указаны в. Если можете, исправьте это.

set XML " 
    <Top> 
    <Name name='name' /> 
    <Group number='1'> 
    <Member name='name1' test='test1' l='100'/> 
    </Group> 
    </Top>" 

Если вы не можете исправить это, вы можете попробовать использовать tDOM вместо этого в режиме HTML (который является много Laxer о оформленности ограничения, хотя это также более низкие футляры все имена элементов и атрибутов) , Имейте в виду, даже при том, что она по-прежнему не работает на вашем конкретном входном документе:

% package require tdom 
0.8.3 
% set doc [dom parse -html $XML] 
error "Unterminated element 'group' (within 'member')" at position 114 
"> 
    <group number=1> 
    <member name='name1' test='test1' l=100/> 
    </group> <--Error-- 
    </Top>" 

Закрепление документ является # 1 вещь, чтобы сделать!

+0

Я получил пример, когда '

+1

. Существует ограничение на то, сколько разлома может вырваться в «документ», прежде чем он станет совершенно не поддающимся анализу. [За исключением REs.] (Http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) –

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