2011-07-28 5 views
1

특정 문자 만 구문 분석 할 때 국외 오류가 발생합니다. 다른 HTML 코드는 잘 분석됩니다. 나는 expat libexpatMT.lib의 UTF-8 라이브러리를 사용하고 있으며 래퍼에 char 및 std :: string을 사용하고 있습니다. 넓은 문자는 사용되지 않습니다. 앰퍼샌드가 여기에 유효하지 않은 토큰이 될 수있는 이유는 & 중 하나가 작동하지 않습니다 & 또는 사용자 정의 스페이서와 앰퍼샌드 교체와 같은 HTML 엔티티 내에서조차 사용되는 이후expat가있는 앰퍼샌드 구문 분석이 실패합니다. 잘못된 토큰?

// The ampersand leads to: Expat error: *not well-formed (invalid token)* 
<a href="http://www.myurl.com?a=b&c=d">Link</a> 
<span>Tom & Jerry</span> 
<h1>K&auml;se</h1> 

나는, 혼란 스러워요.

제안 사항? 여기서 앰퍼샌드가 문제입니다.

답변

3

XML에서는 엔터티에서도 앰퍼샌드를 이스케이프 처리합니다. 올바른 값은 <a href="http://www.myurl.com?a=b&amp;c=d">Link</a>
입니다. 정확한 웹 페이지가 그 값을 사용합니다. 브라우저는 여러분이 만든 오류에 대해 상당히 관대합니다.

+0

이것은 좋지 않습니다. 나는 '& auml;'과 같은 텍스트에 대해 '

Tom&Jerry
'과 같은 값을 '두 번 이스케이프'해야만합니다. 고마워! – Smamatti

+0

거기에 뭔가 잘못된 것이 있습니다. 이중 변환/언 이스케이프가 코드에서 발생하지 않았는지 확인하십시오. – PhiLho

관련 문제