12.01.2010, 17:21 | #1 |
Участник
|
Суть проблемы следующая: С нового года создали новую серию номеров и включили туда символ "/" (пример: ОТГР-10/00048)
При выгрузки в excel с помощью ф-и "Отпр. в Microsoft Office Excel Ctrl+E" открывался excel с сообщением, что обнаружены ошибка в xml файле (см вложение). Поборол путем удаление из xml файла в атрибуте captio злорадного символа. CU 403 создал ф-ю меняющею(а точнее удаляющею и заново создающею) нужный атрибут Код: SetAttributeValue(VAR DataXML : Automation "'Microsoft XML, v4.0'.DOMDocument40";XPath : Text[250];Name : Text[250];Value : Text[250]) локальные переменные Name DataType Subtype Length TempAttribute Automation 'Microsoft XML, v4.0'.IXMLDOMNode DOMNode Automation 'Microsoft XML, v4.0'.IXMLDOMNode Attributes Automation 'Microsoft XML, v4.0'.IXMLDOMNamedNodeMap AttributeNode Automation 'Microsoft XML, v4.0'.IXMLDOMNode тело ф-и DOMNode:=DataXML.selectSingleNode(XPath); Attributes := DOMNode.attributes(); AttributeNode := Attributes.getNamedItem(Name); Attributes.removeNamedItem(Name); TempAttribute := DOMNode.ownerDocument.createAttribute(Name); IF Value <> '' THEN TempAttribute.nodeValue := Value; DOMNode.attributes.setNamedItem(TempAttribute); CLEAR(TempAttribute); сначала получил значение атрибута caption1:=GetAttributeValue(DataXML,'//Object','caption'); потом удалил вредоносный символ caption1:=DELCHR(caption1,'=','/'); и наконец, записал полученное значение SetAttributeValue(DataXML,'//Object','caption',caption1); Может, кому пригодится. На оригинальность решения не претендую |
|
14.01.2010, 10:04 | #2 |
Участник
|
Цитата:
Сообщение от jopagames
ЗЫ: Просто приятно видеть человека, который поражён мощью и возможностями ф-ции delchr() до такой степени, что пишет её название БОЛЬШИМИ БУКВАМИ в отличие от имён остальных функций.
Сразу видно - что ЭТУ строку дописал сам автор! Лично! |
|