< návrat zpět
MS Excel
Téma: Export tabulky do XML - zamezení entit
Zaslal/a eXMarty 28.12.2013 18:02
Při exportu tabulky do XML (podle vlastního schématu) jsou některé znaky nahrazeny html entitami, používám zde ale CDATA, v kterých je obsažen právě html kod, tedy nahrazení entitami je nežádoucí.
Je možnost funkci nahrazování entitami nějak ovlivnit?
Předem díky za odpovědi a čas všech zůčastněných
Palooo(7.1.2014 13:55)#017084 tu som to doplnil do toho makra:
Příloha: 17084_cdata-excel.zip (14kB, staženo 21x) citovat
eXMarty(31.1.2014 14:09)#017632 Díky za spolupráci,
přiložím zde pro případné další hledající výsledný kód univerzálněji upravený, okomentovaný
Sub VytvorXML()
'Jako jméno výstupního souboru použije jméno původního XLS souboru a přidá příponu ".xml"
JmenoSouboru = Application.ThisWorkbook.Path & "\" & Application.ThisWorkbook.Name & ".xml"
'expotrovat jako XML (použije mapování "Document_Mapování", a je uloženo do aktuálného adresáře a jako jméno je použito jméno původního XLS souboru a přidáno ".xml")
ActiveWorkbook.XmlMaps("Document_Mapování").Export URL:=JmenoSouboru
'otevře v předchozím kroku exportovaný XML soubor pro čtení a jeho obsah uloží do proměnné strXML
Dim hf As Integer: hf = FreeFile
Open JmenoSouboru For Input As #hf
strXML = Input$(LOF(hf), #hf)
Close #hf
'otevře soubuor pro zápis a zapíše do něj původní strXML proměnnou, která projde přes funkci OstranEntity
Open JmenoSouboru For Output As #hf
Print #hf, OdstranEntity(strXML)
Close #hf
End Sub
Private Function OdstranEntity(ByVal aString As String) As String
aString = Replace(aString, "<", "<")
aString = Replace(aString, ">", ">")
OdstranEntity = aString
End Function
citovat