- Remove From My Forums
-
Question
-
Hi,
I am using Msxml2.DOMDocument however I am getting a parseError of -1072896760. I can’t find this documented anywhere!
the XML I am trying to parse is:
<?xml version="1.0" encoding="utf-8" ?>
<result status="1">
<sale id="155913">
<salecosts>
<salecost name="handset" value=""/>
<salecost name="delivery" value=""/>
<salecost name="other" value=""/>
</salecosts>
<handset>
<model id="1" name="1661-Black(+�60 cb)">
<manufacturer id="1" name="Nokia"/>
</model>
</handset>
<tariff rental="20" term="24" description="rent: 20.00 | term: 24 | mins: 100 | SMS: 500 | network: Vodafone">
<network name="UK - VODAFONE" id="2" />
</tariff>
<user name="becky_sales" id="33105" />
<delivery instructions=" ">
<deliveryAddress add1="1 the road" add2="county" add3="" pcode="AB1 234"/>
</delivery>
<mobile number="00447123456789" id="29988151">
<contactDetails>
<address add1="1 the road" add2="county" add3="" pcode="AB1 234"/>
<name saluation="Mrs " fname="BOB" sname="SMITH"/>
<additionalNumbers>
<additionalNumber name="Alternate" number=" "/>
</additionalNumbers>
</contactDetails>
</mobile>
</sale>
</result>
Regards,
Chris V
-
Moved by
Tuesday, February 22, 2011 2:13 AM
(From:XML in Windows (MSXML and XmlLite))
-
Moved by
Answers
-
You can use DomDocument.parseError.reason to find the description of this error code. I used the following code to parse your xml and there is no error.
var doc = new ActiveXObject("Msxml2.DOMDocument"); doc.validateOnParse = true; doc.async = false; doc.setProperty("ProhibitDTD", false); doc.resolveExternals = true; doc.load("test.xml"); var error = doc.parseError; if (error.errorCode != 0){ WScript.Echo("Code: " + error.errorCode); WScript.Echo("Reason: " + error.reason); WScript.Echo("Line: " + error.line + " Pos: " + error.linepos); WScript.Echo("Source: " + error.srcText); } else{ WScript.Echo("No Error"); }
I also believe the «<br/>» right next to <?xml … ?> is not part of the xml file.
Shuhai Shen — http://leonax.net
-
Edited by
Shuhai
Wednesday, September 2, 2009 2:20 PM
Add link -
Marked as answer by
venablc
Wednesday, September 2, 2009 2:29 PM
-
Edited by
Перейти к контенту
- Remove From My Forums
-
Вопрос
-
Здравствуйте.
Нужно распарсить ХМЛ файл, но файл с ошибкой. Как исправить ошибку, а затем парсить.
Переписываать файл НЕЛЬЗЯ
Использую такой код
var xmlDoc = new ActiveXObject(«Microsoft.XMLDOM»);
var readok = false;
xmlDoc.async = «false»;
readok = xmlDoc.load(programfolder + «client_state.xml»);if (readok){ здесь парсинг
Но readok содержит ошибку -1072896760 — недопустимый символ. Это не ASCII символ. Так вот как его вібросить, а затем продолжить парсить.
Спасибо
- Перемещено
6 июня 2011 г. 16:21
(От:Windows 7)
- Перемещено
Ответы
-
Тут все просто: ваш файл не является XML файлом. Пишете свой парсер под этот нестандартный формат или меняйте файл чтоб он был валидным XML.
Как промежуточный вариант загрузите его в память, исправьте в нем все ошибки чтоб он стал валидным XML, после этого загружайте.
This posting is provided «AS IS» with no warranties, and confers no rights.
- Помечено в качестве ответа
Yuriy Lenchenkov
8 июня 2011 г. 10:49
- Помечено в качестве ответа
- Remove From My Forums
-
Question
-
Hi,
I am using Msxml2.DOMDocument however I am getting a parseError of -1072896760. I can’t find this documented anywhere!
the XML I am trying to parse is:
<?xml version="1.0" encoding="utf-8" ?>
<result status="1">
<sale id="155913">
<salecosts>
<salecost name="handset" value=""/>
<salecost name="delivery" value=""/>
<salecost name="other" value=""/>
</salecosts>
<handset>
<model id="1" name="1661-Black(+�60 cb)">
<manufacturer id="1" name="Nokia"/>
</model>
</handset>
<tariff rental="20" term="24" description="rent: 20.00 | term: 24 | mins: 100 | SMS: 500 | network: Vodafone">
<network name="UK - VODAFONE" id="2" />
</tariff>
<user name="becky_sales" id="33105" />
<delivery instructions=" ">
<deliveryAddress add1="1 the road" add2="county" add3="" pcode="AB1 234"/>
</delivery>
<mobile number="00447123456789" id="29988151">
<contactDetails>
<address add1="1 the road" add2="county" add3="" pcode="AB1 234"/>
<name saluation="Mrs " fname="BOB" sname="SMITH"/>
<additionalNumbers>
<additionalNumber name="Alternate" number=" "/>
</additionalNumbers>
</contactDetails>
</mobile>
</sale>
</result>
Regards,
Chris V
- Moved by
Tuesday, February 22, 2011 2:13 AM
(From:XML in Windows (MSXML and XmlLite))
- Moved by
Answers
-
You can use DomDocument.parseError.reason to find the description of this error code. I used the following code to parse your xml and there is no error.
var doc = new ActiveXObject("Msxml2.DOMDocument"); doc.validateOnParse = true; doc.async = false; doc.setProperty("ProhibitDTD", false); doc.resolveExternals = true; doc.load("test.xml"); var error = doc.parseError; if (error.errorCode != 0){ WScript.Echo("Code: " + error.errorCode); WScript.Echo("Reason: " + error.reason); WScript.Echo("Line: " + error.line + " Pos: " + error.linepos); WScript.Echo("Source: " + error.srcText); } else{ WScript.Echo("No Error"); }
I also believe the «<br/>» right next to <?xml … ?> is not part of the xml file.
Shuhai Shen — http://leonax.net
- Edited by
Shuhai
Wednesday, September 2, 2009 2:20 PM
Add link - Marked as answer by
venablc
Wednesday, September 2, 2009 2:29 PM
- Edited by
Перейти к контенту
В виду неудобства просмотра данных в файле XML возникла задача открыть (или импортировать) файл XML в MS Excel. Благо то, что MS Excel поддерживает такие файлы и в нем встроен механизм импорта.
Однако при открытии файла XML в Excel появляется ошибка:
Если нажать на кнопку «Сведения…» выводятся подробности:
Код ошибки —2146697210, Не удается найти указанный объект:
Иногда после того, как нажимаешь «ОК» в окне на рис.1, MS Excel зависает и закрывается с ошибкой:
Решение (на примере MS Excel 2016 ):
Произвести импорт данных:
1. Открыть новый документ в Excel (Пустая книга)
2. Перейти на вкладку «Данные» — «Получение внешних данных» — «Из других источников» — «Из импорта данных XML«:
3. Далее выбираем импортируемый файл XML и нажимаем на кнопку «Открыть«.
4. Выбираем способ открытия «XML-таблица«:
5. В окне «Импорт данных» выставите значение «Новый лист«:
Нажмите «ОК«. После чего должна открыться таблица с набором данных из XML-файла.
Для того, чтобы открыть (импортировать) в Excel несколько файлов необходимо:
1. В Excel в меню «Файл» выбрать «Параметры«.
2. Перейти в раздел «Настроить ленту» и активировать вкладку «Разработчик«:
Нажмите кнопку «ОК«.
3. Нажмите на вкладку «Разработчик» — «Импорт» (в разделе XML):
4. Далее с помощью клавиш CTRL или SHIFT выберите несколько XML файлов и нажмите «Открыть».
|
|||
jbond
10.08.06 — 10:22 |
Сабж. А IE номально загружает его. Другие XML, выгруженные по той же схеме — проходят нормально. В чем дело? Код загрузки: xmlParser = СоздатьОбъект(«MSXML2.DOMDocument»); xmlParser.async = 0; xmlParser.load(ФайлИмпорта); Корень = xmlParser.documentElement; — исключение |
||
jbond
1 — 10.08.06 — 10:31 |
xmlParser.parseError.reason = «An invalid character was found in text content.» |
||
andrey1111
2 — 10.08.06 — 10:38 |
Если парсится выгрузка из 1С, то сделай ТиИ базы-источника. Оно уберет запрещенные символы. Обычно это символ возврата каретки в каком-нибудь реквизите справочника. Затем снова сделай выгрузку. ЗЫ копию не забудь сделать |
||
jbond
3 — 10.08.06 — 10:44 |
(2) — это собственноручно написанная выгрузка. Впервые сталкиваюсь с такой хней. Перепробовал и Utf-8 и WIN1251 |
||
jbond
4 — 10.08.06 — 10:46 |
А сторонние инструменты лечение XML есть? |
||
jbond
5 — 10.08.06 — 10:54 |
Странно ругается на символ в слове Медсеста… |
||
jbond 6 — 10.08.06 — 11:06 |
А теперь ругается на другой сивмол — в слове Возвраты. Что за хрень? Парсер глючный? |
TurboConf — расширение возможностей Конфигуратора 1С |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Archived Forums 261-280
>
Off-Topic Posts (Do Not Post Here)
-
Question
-
0
Sign in to vote
This particular Excel file was left open when my laptop was accidentally shut down. Since then, whenever I tried to open this file, I’ll get this error code 1072896760.
Is there any thing I can do to open this file again?- Moved by
Tim Li
Monday, September 7, 2009 10:09 AM
off-topic in developer forum (From:Visual Basic for Applications (VBA))
Tuesday, August 25, 2009 2:24 AM
- Moved by
Archived Forums 261-280
>
Off-Topic Posts (Do Not Post Here)
-
Question
-
0
Sign in to vote
This particular Excel file was left open when my laptop was accidentally shut down. Since then, whenever I tried to open this file, I’ll get this error code 1072896760.
Is there any thing I can do to open this file again?- Moved by
Tim Li
Monday, September 7, 2009 10:09 AM
off-topic in developer forum (From:Visual Basic for Applications (VBA))
Tuesday, August 25, 2009 2:24 AM
- Moved by
VikaR
-
#1
Здравствуйте.
Нужно распарсить ХМЛ файл, но файл с ошибкой. Как исправить ошибку, а затем парсить.
Переписываать файл НЕЛЬЗЯ
Использую такой код
var xmlDoc = new ActiveXObject(«Microsoft.XMLDOM»);
var readok = false;
xmlDoc.async = «false»;
readok = xmlDoc.load(programfolder + «client_state.xml»);
if (readok){ здесь парсинг
Но readok содержит ошибку -1072896760 — недопустимый символ. Это не ASCII символ. Так вот как его выбросить, а затем продолжить парсить.
Спасибо
PS. Сам файл здесь
Ссылка скрыта от гостей
1ive
-
#2
Если хочешь сделать всё проще — предлагаю обходной путь)
Simple HTML DOM Parser is designed for reading and editing HTML but it works fine with XML files
Вот сайт проекта
Ссылка скрыта от гостей
С использованием этого класса, парсер будет выглядеть примерно так:
HTML:
$xml = file_get_html('http://www.google.com/');
foreach($xml->find('span') as $element)
echo $element;
В документации можно посмотреть как спарсить совершенно любой элемент XML
Сам им часто пользуюсь.
VikaR
-
#3
Есть путь еще проще — прочитать файл в память как текст, подправить инвалидніе символы, а затем передать парсеру.
Вот код
if (xmlDoc.parseError.errorCode == -1072896760){
var filename = programfolder + «client_state.xml»;
try{
var xmlfile = fspenTextFile(filename.substring(8), 1); //1 read
var filecontent = xmlfile.ReadAll();
xmlfile.Close();
// здесь убираются инвалидніе символы (эта часть программы, думаю никого не интересует)
readok = xmlDoc.loadXML(filecontent);
}
catch (e){}
finally { xmlfile.Close(); }
}
- Remove From My Forums
-
Вопрос
-
Здравствуйте.
Нужно распарсить ХМЛ файл, но файл с ошибкой. Как исправить ошибку, а затем парсить.
Переписываать файл НЕЛЬЗЯ
Использую такой код
var xmlDoc = new ActiveXObject(«Microsoft.XMLDOM»);
var readok = false;
xmlDoc.async = «false»;
readok = xmlDoc.load(programfolder + «client_state.xml»);if (readok){ здесь парсинг
Но readok содержит ошибку -1072896760 — недопустимый символ. Это не ASCII символ. Так вот как его вібросить, а затем продолжить парсить.
Спасибо
-
Перемещено
6 июня 2011 г. 16:21
(От:Windows 7)
-
Перемещено
Ответы
-
Тут все просто: ваш файл не является XML файлом. Пишете свой парсер под этот нестандартный формат или меняйте файл чтоб он был валидным XML.
Как промежуточный вариант загрузите его в память, исправьте в нем все ошибки чтоб он стал валидным XML, после этого загружайте.
This posting is provided «AS IS» with no warranties, and confers no rights.
-
Помечено в качестве ответа
Yuriy Lenchenkov
8 июня 2011 г. 10:49
-
Помечено в качестве ответа
- Remove From My Forums
-
Question
-
Hi,
I am using Msxml2.DOMDocument however I am getting a parseError of -1072896760. I can’t find this documented anywhere!
the XML I am trying to parse is:
<?xml version="1.0" encoding="utf-8" ?>
<result status="1">
<sale id="155913">
<salecosts>
<salecost name="handset" value=""/>
<salecost name="delivery" value=""/>
<salecost name="other" value=""/>
</salecosts>
<handset>
<model id="1" name="1661-Black(+�60 cb)">
<manufacturer id="1" name="Nokia"/>
</model>
</handset>
<tariff rental="20" term="24" description="rent: 20.00 | term: 24 | mins: 100 | SMS: 500 | network: Vodafone">
<network name="UK - VODAFONE" id="2" />
</tariff>
<user name="becky_sales" id="33105" />
<delivery instructions=" ">
<deliveryAddress add1="1 the road" add2="county" add3="" pcode="AB1 234"/>
</delivery>
<mobile number="00447123456789" id="29988151">
<contactDetails>
<address add1="1 the road" add2="county" add3="" pcode="AB1 234"/>
<name saluation="Mrs " fname="BOB" sname="SMITH"/>
<additionalNumbers>
<additionalNumber name="Alternate" number=" "/>
</additionalNumbers>
</contactDetails>
</mobile>
</sale>
</result>
Regards,
Chris V
-
Moved by
Tuesday, February 22, 2011 2:13 AM
(From:XML in Windows (MSXML and XmlLite))
-
Moved by
Answers
-
You can use DomDocument.parseError.reason to find the description of this error code. I used the following code to parse your xml and there is no error.
var doc = new ActiveXObject("Msxml2.DOMDocument"); doc.validateOnParse = true; doc.async = false; doc.setProperty("ProhibitDTD", false); doc.resolveExternals = true; doc.load("test.xml"); var error = doc.parseError; if (error.errorCode != 0){ WScript.Echo("Code: " + error.errorCode); WScript.Echo("Reason: " + error.reason); WScript.Echo("Line: " + error.line + " Pos: " + error.linepos); WScript.Echo("Source: " + error.srcText); } else{ WScript.Echo("No Error"); }
I also believe the «<br/>» right next to <?xml … ?> is not part of the xml file.
Shuhai Shen — http://leonax.net
-
Edited by
Shuhai
Wednesday, September 2, 2009 2:20 PM
Add link -
Marked as answer by
venablc
Wednesday, September 2, 2009 2:29 PM
-
Edited by
Перейти к контенту
В виду неудобства просмотра данных в файле XML возникла задача открыть (или импортировать) файл XML в MS Excel. Благо то, что MS Excel поддерживает такие файлы и в нем встроен механизм импорта.
Однако при открытии файла XML в Excel появляется ошибка:
Если нажать на кнопку «Сведения…» выводятся подробности:
Код ошибки —2146697210, Не удается найти указанный объект:
Иногда после того, как нажимаешь «ОК» в окне на рис.1, MS Excel зависает и закрывается с ошибкой:
Решение (на примере MS Excel 2016 ):
Произвести импорт данных:
1. Открыть новый документ в Excel (Пустая книга)
2. Перейти на вкладку «Данные» — «Получение внешних данных» — «Из других источников» — «Из импорта данных XML«:
3. Далее выбираем импортируемый файл XML и нажимаем на кнопку «Открыть«.
4. Выбираем способ открытия «XML-таблица«:
5. В окне «Импорт данных» выставите значение «Новый лист«:
Нажмите «ОК«. После чего должна открыться таблица с набором данных из XML-файла.
Для того, чтобы открыть (импортировать) в Excel несколько файлов необходимо:
1. В Excel в меню «Файл» выбрать «Параметры«.
2. Перейти в раздел «Настроить ленту» и активировать вкладку «Разработчик«:
Нажмите кнопку «ОК«.
3. Нажмите на вкладку «Разработчик» — «Импорт» (в разделе XML):
4. Далее с помощью клавиш CTRL или SHIFT выберите несколько XML файлов и нажмите «Открыть».