2016-06-20 9 views
1

У меня есть HTML-файл с Javascript в нем. Но я не могу загрузить этот HTML-файл с помощью библиотеки tinyXML2. Это дает ошибку.Загрузите HTML-файл с помощью javascript с помощью библиотеки tinyXML2

Мой HTML файл как abc.html:

<?xml version="1.0" encoding="UTF-8"?> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
 
<head> 
 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
 
    <title>HTML Course</title> 
 
    <style type="text/css"> 
 
ul.LinkedList { display: block; } 
 
/* ul.LinkedList ul { display: none; } */ 
 
.HandCursorStyle { cursor: pointer; cursor: hand; } /* For IE */ 
 
    </style> 
 

 
    <script type="text/JavaScript"> 
 
function addEvents() { 
 
     activateTree(document.getElementById("LinkedList1")); 
 
    } 
 
    function activateTree() 
 
\t { 
 
     for(var i=0; i < oList.getElementsByTagName("ul").length; i++) 
 
\t { 
 
     oList.getElementsByTagName("ul")[i].style.display="none";    
 
     }                 
 
     if(oList.addEventListener) 
 
\t { 
 
     oList.addEventListener("click", toggleBranch, false); 
 
     } 
 
\t else if(oList.attachEvent) 
 
\t { 
 
     oList.attachEvent("onclick", toggleBranch); 
 
     } 
 
     addLinksToBranches(oList); 
 
    } 
 
    </script> 
 
</head> 
 

 
\t <body > 
 
<ul id="LinkedList1" class="LinkedList"> 
 
    <li>History of WWW 
 
    <ul> 
 
     <li>Arpanet - Packets - 1969</li> 
 
     <li>TCP/IP - Vinton Cerf - 1974</li> 
 
     <li>WorldWideWeb (Internet and program) - Tim Berners Lee - 1991</li> 
 
     <li>Public Domain WWW source code - 1993</li> 
 
     <li>NCSA Mosaic released - 1993</li> 
 
     <li>Opera released - 1994</li> 
 
     <li>Marc Anderseen (formerly NCSA) and Jim Clark release Netscape - 1994</li> 
 
     <li>IE from Microsoft (based on Mosaic) 
 
     <ul> 
 
      <li>DHTML</li> 
 
      <li>ActiveX</li> 
 
     </ul> 
 
     </li> 
 
     <li>W3C at MIT (CERN, NCSA, EU)</li> 
 
     <li>W3C Recommendations</li> 
 
     <li>Mozilla Foundation</li> 
 
    </ul> 
 
    </li> 
 

 
</ul> 
 
</body> 
 
</html>

и мой с ++ код, чтобы загрузить этот файл .html:

tinyxml2::XMLDocument xmlDoc; 
tinyxml2::XMLError err = xmlDoc.LoadFile("abc.html"); 

Теперь err имеет код ошибки XML_ERROR_PARSING_ELEMENT.

Что я хочу сделать, это HTML-файл, чтобы найти определенный тег, скажем <ul> под тегом <body>, и хотите добавить еще несколько элементов внутри этого тега.

Пожалуйста, дайте мне знать, почему это дает ошибку и как я могу это сделать так или иначе.

+0

Без ошибок мы не можем ничего – Garf365

+0

@ Garf365 сделать, код ошибки XML_ERROR_ELEMENT_MISMATCH. –

+0

Пожалуйста, отредактируйте свой вопрос, чтобы добавить какие-либо элементы, которые могут помочь нам => ошибка, которую вы получаете, фрагмент HTML, который генерирует ошибку, код C++, ... – Garf365

ответ

1

Эта линия ваша проблема:

 for(var i=0; i < oList.getElementsByTagName("ul").length; i++) 

Менее чем сравнение интерпретируется XML парсер как начало элемента, но так как это не следует имя юридического элемента, анализатор выкрутасы и умирает от вас, как это привычно.

Оберните содержимое тега сценария в разделе <![CDATA[]]>; избегайте его, используя &lt;, или переверните сравнение, сделав его >=.

<body > 

Возможно также возникновение проблем из-за пробела после имени элемента, хотя это не должно. (Это действует XML, но не каждый анализатор полностью соответствует.)

Edit:

Как ГАРФ указывает; хорошо отделить XML и JS, а также CSS, и это именно причина.

Что вы хотите в XML-сериализации, как правило, это:

<script type="text/javascript" src="myScript.js" /> 
+0

В дополнение к этому ответу я предлагаю отделить XML и javascript, каждый в своем собственном файле, если это возможно – Garf365

+0

@Williham Totland, мой файл HTML загружен успешно через библиотеку tinyXML2, когда я использовал . Я хочу еще кое-что узнать, как найти конкретный тег, используя tinyXML2. Есть ли способ найти? Я не получил никакой помощи для поиска определенного тега на веб-сайте grinningLizards. –

+0

@Britton Тогда, задавая другой вопрос, возможно, это путь. :) –

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

  • Нет связанных вопросов^_^