Проблема с wmlwriter в VB NET
Всем привет.
Я разрабатываю проект Visual Studio 2017 (Visual Basic), пытаясь сгенерировать XML-файл для проверки соответствующим DAC для электронного счета-фактуры.
- Я использую класс xmlWriter, который я использовал в прошлом, через Visual Studio 2010, и он работал просто отлично.
Но теперь, используя те же операторы, которые я использовал ранее, когда я пытаюсь использовать метод 'WriteStartElement', он терпит неудачу и отправляет сообщение:
"Carácter de nombre no válido en 'cfdi:Comprobante'. El carácter ':', con valor hexadecimal 0x3A, no puede incluirse en un nombre."
На английском языке (более или менее) "недопустимый символ в имени. Символ ':' с шестнадцатеричным значением 0x3A не может быть включен в имя".
- Я также использовал символ ascii (34) для объединения символа ""в текстовую строку, которая должна быть включена как часть литерала, но он генерирует пару"", а не только один, как я хочу. Подобный этому:
Дим Кадена как String = ":атрибут xsi=" + символ(34) + "http://www.w3.org/2001/XMLSchema-instance" + символ(34) + "атрибут xsi:schemaLocation =" + символ(34) + "http://www.uif.shcp.gob.mx/recepcion/ari Ари.xsd и" + символ(34) _
+ "xmlns =" + Chr(34) + "http://www.uif.shcp.gob.mx/recepcion/ari"
Может ли кто-нибудь помочь мне или подсказать, где искать эту пару сомнений ?
Заранее спасибо.
Что я уже пробовал:
Я искал в интернете и пока ничего не нашел. Я собираюсь продолжить поиски, но буду признателен за любую помощь.
Я не знаю, почему одни и те же процедуры прекрасно работали раньше, а не сейчас.
David_Wimbley
Можете ли вы опубликовать некоторые примеры кода, которые были бы наиболее полезны, вы опубликовали одну переменную, но лучше всего было бы написать весь xml-код, который вы пытаетесь сделать.
Miguel Altamirano Morales
Спасибо, что ответил, Дэвид.
Вот и вся субмарина:
Частный Sub Genera_XML()
Тусклая Кадена Как Струна
Кадена = ЧР(39) + "http://www.sat.gob.mx/cfd/3" + ЧР(39) + "атрибутов xmlns:xsi в =" + ЧР(39) + "протоколы HTTP//ВСП.В3.орг/2001/экземпляра xmlschema" + ЧР(39) + "атрибут xsi:schemaLocation =" + ЧР(39) + "http://www.sat.gob.mx/cfd/3" + ЧР(39) + "http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" + ЧР(39)
Тусклые настройки как XmlWriterSettings = новые XmlWriterSettings()
настройки.Отступ = Истина
FileNameXML = strPath + "XMLFacturas\" + IDFiscal + ".XML"
На Ошибка goto msg_error
Использование writer как XmlWriter = XmlWriter.Создать(FileNameXML, настройки)
- Начинайте писать.
писатель.WriteProcessingInstruction("xml", "version='1.0' encoding='utf-8'")
писатель.WriteStartElement("cfdi:Comprobante")
писатель.WriteElementString("Version", "3.3")
писатель.WriteElementString("Serie", Mid(IDFiscal, 1, 3))
писатель.WriteElementString("Фолио", Mid(IDFiscal, 4, Len(IDFiscal) - 3))
писатель.WriteElementString("Fecha", Дата.Сегодня.Час)
писатель.WriteEndElement()
- Конечный документ.
писатель.Метод writeenddocument()
Конец Использования
Выход Из Субмарины
msg_error:
Отлаживать.Печать(Err.Описание)
Конец Подводной Лодки
Программа терпит неудачу, когда находит первого "писателя".Оператор WriteStartElement" (где он содержит символ ':' carácter).
Это код, который я хочу сгенерировать:
<cfdi:Comprobante
описание:cfdi все="http://www.sat.gob.mx/cfd/3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.sat.gob.mx/cfd/3
http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd"
……………..
an0ther1
См. обновленное решение - вам нужно использовать метод перегрузки WriteStartElement(String, String, String)
с уважением