29.12.2009, 14:10 | #41 |
Участник
|
Можно сдалать с помощью EntityReference
X++: static void Job1(Args _args) { XMLDocument xml = new XMLDocument(); XMLNode node; XMLElement element; XMLEntityReference ref; ; ref = xml.createEntityReference("x10"); element = xml.createElement("Element1"); xml.appendChild(element); node = xml.createElement("Node1"); element.appendChild(node); node.appendChild(xml.createTextNode("Строка 1" )); node.appendChild(ref); node.appendChild(xml.createTextNode("Строка 2" )); info(xml.toString()); } Пардон, решетку так нельзя передать
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 29.12.2009 в 14:18. |
|
29.12.2009, 14:21 | #42 |
Участник
|
Цитата:
Типа http://msdn.microsoft.com/en-us/libr...tasection.aspx X++: static void Job3(Args _args) { XMLDocument doc = XMLDocument::newXml('<test/>'); doc.root().appendChild(doc.createCDataSection('a\r\nb')); doc.save(@'c:\0\1.xml'); } |
|
|
За это сообщение автора поблагодарили: Damn (2), Jackally (0), alex55 (1). |
29.12.2009, 15:26 | #43 |
Участник
|
Цитата:
Сообщение от belugin
Парсеру надо просто сформирвоать в терминах дерева DOM то, что вы хотите. Я имел ввиду просто в CDATA вставить перевод строки безо всяких кодов.
Типа http://msdn.microsoft.com/en-us/libr...tasection.aspx X++: static void Job3(Args _args) { XMLDocument doc = XMLDocument::newXml('<test/>'); doc.root().appendChild(doc.createCDataSection('a\r\nb')); doc.save(@'c:\0\1.xml'); } Если я пишу текст в createCDataSection('fgsfg \n dsfsdf'); то в xml файле я получаю 'fgsfg & #13;& #10; dsfsdf' и текст наконец-таки стал разделятся на разные строки ) Единственная неприятная мелочь, так то что он настоятельно вставляет 13ый и 10ый символы вместе, даже если отпраляешь только '\n' или только '\r'. А эксель 13ый символ не понимает и отображает квадратиком, как-то некрасиво (( |
|
29.12.2009, 15:47 | #44 |
Участник
|
какая версия аксапты? у меня получается
X++: 3c746573 743e3c21 5b434441 54415b61 # 00000000 <test><![CDATA[a 0a625d5d 3e3c2f74 6573743e # 00000010 .b]]></test> |
|
29.12.2009, 16:19 | #45 |
Участник
|
Я, кажется, понял в чем фишка... у меня в XMLElement уже много чего писалось до этого, т.е. он не чистый, видимо парсер из-за этого переклинивает и он не выделяет тэгом CDATA, а сам заменяет всё что нужно спец символами, т.е. как бы тот же результат...
Теперь хоть ясно куда копать и как глубоко, спасибо ) |
|
29.12.2009, 18:21 | #46 |
Участник
|
я ошибся, всё так и есть, в XML файле текст выделяется тэгом CDATA, проблема происходит дольше (( при открытии файла в Excel, сам ёксель его конвертит таким образом что вставляется в места перевода строк символы 13 и 10, пробывали открывать в разных Экселях, одно и то же. В местах перевода строк с помощью CDATA появляется "квадратик"... (
|
|
11.01.2010, 09:39 | #47 |
Читатель
|
Цитата:
Сообщение от Jackally
У меня такая же проблема что и у Ivanhoe, для неё всё-таки нашлось решение?
Т.е. я отправляю в XMLElement или \r, или \n, все равно получаю символ в xml-документе просто пробел, как насильно вставить туда именно перевод строки? Если в ручную в Экселе вставить перевод строки, то в xml документе он запишется как "& # 10;". Пытаюсь отправить этот код в XMLElement, на выходе в документе получаю некий преобразованный код "& amp; #10;", что уже не работает как перевод строки. Понимаю, что закат солнца вручную, но если сохранять документ таким образом? X++: textBuffer.appendText(xMLDocument.xml()); textBuffer.replace("&#10;", "& #10;"); textBuffer.toFile(filename); Последний раз редактировалось b_nosoff; 11.01.2010 в 09:56. |
|
21.05.2010, 13:34 | #48 |
Участник
|
X++: static void Job17(Args _args) { XMLDocument xmlDoc = XMLDocument::newFile(@"C:\1.xml"); // Неформатированный xml XMLTextWriter xmlTextWriter; ; xmlTextWriter = xmlTextWriter::newFile(@"C:\2.xml"); xmlTextWriter.formatting(XMLFormatting::Indented); xmlTextWriter.indentation(0); // Число символов смещения xmlDoc.writeTo(xmlTextWriter); } Последний раз редактировалось Lokki; 21.05.2010 в 14:01. |
|
13.02.2012, 12:54 | #49 |
Участник
|
Цитата:
В частности, у себя я заметил что fromFile зависал при размере файла больше примерно 42 мегабайт. Приходилось завершать работу аксапты диспетчером задач.
__________________
Дмитрий |
|
Теги |
excel, xml, отчет, форматирование |
|
|