VBA: извлечение XML данных из формы XFA и передача в XML анализатор - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь извлечь информацию XML из формы XFA, используя VBA.

Приведенный ниже код работает для извлечения данных XML в отдельный файл, но требует взаимодействия с пользователем (пользователь попросил дать файлу XML имя). Я отказался от попыток автоматизировать это без взаимодействия с пользователем из-за требования Adobe о «безопасном пути» (которое невозможно обойти с помощью автоматизации VBA).

Dim objPDDoc As New AcroPDDoc
Dim objJSO As Object
Dim strSafePath as String

strSafePath = ""

objPDDoc.Open (FileName)
Set objJSO = objPDDoc.GetJSObject
objJSO.xfa.host.exportdata strSafePath, 0

Что я предпочел бы сделать, так это проанализировать XML информация напрямую с использованием MSXML2.DOMDocument60. Я надеялся, что смогу сделать что-то вроде этого:

Dim XMLDoc As New MSXML2.DOMDocument60

If XMLDoc.Load(objJSO.xfa.host.exportdata) = True Then
    Call funcParse(XMLDoc)
End if

Однако загрузка XMLDoc с objJSO.xfa.host.exportdata не работает, и я не могу понять, какие, если вообще есть, возможности там должны передавать информацию XML с использованием любых методов / свойств xfa.host.

Любая помощь приветствуется - также сообщается, что это невозможно в VBA.

1 Ответ

0 голосов
/ 26 февраля 2020

Попробуйте что-то вроде этого:

myXMLstring = "<XML>BLA</XML>"
Dim xmlDoc As MSXML2.DOMDocument60
Set xmlDoc = New MSXML2.DOMDocument60
xmlDoc.LoadXML myXMLstring

См. Для лучшего примера: см., Например, этот пост: https://desmondoshiwambo.wordpress.com/2012/07/03/how-to-load-xml-from-a-local-file-with-msxml2-domdocument-6-0-and-loadxml-using-vba/

...