Извлечь метаданные / столбец XML из изображений jpeg2000, используя vbscript/VBA

У меня есть процедуры, которые собирают и анализируют данные файлов / папок в отношении содержимого базы данных - система существует и работает хорошо в течение многих лет. Эти подпрограммы используют vbscript/AccessVBA для сбора информации о файле и подготовки / загрузки записей на базу данных SQL-сервера. В настоящее время я не храню файловые потоки на SQL-сервере, только их пути и данные о файлах. Теперь мне нужно извлечь метаданные XML из некоторых из этих файлов, с которыми мне не приходилось работать.

Файлы JPEG2000 получены из TIFF. Они генерируются с помощью пакета, а метаданные из оригинальных TIFF добавляются в JP2. Я могу увидеть XML с помощью JP2 Meta Editor:

J2K инструмент

XML выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Originating Facility -->
<TIFF>
   <METADATA>
      <FILENAME>L145Y1921I001S0005.tif</FILENAME>
      <SEPARATOR>\</SEPARATOR>
      <PARENT>I:\Processing_Unit\L145\Box127</PARENT>
      <CANONICALPATH>I:\Processing_Unit\L145\Box127\L145Y1921I001S0005.tif</CANONICALPATH>
      <ABSOLUTEPATH>I:\Processing_Unit\L145\Box127\L145Y1921I001S0005.tif</ABSOLUTEPATH>
      <PATH>I:\Processing_Unit\L145\Box127\L145Y1921I001S0005.tif</PATH>
      <FILE>true</FILE>
      <DIRECTORY>false</DIRECTORY>
      <FILELENGTH>18462952</FILELENGTH>
      <HIDDEN>false</HIDDEN>
      <ABSOLUTE>true</ABSOLUTE>
      <URL>file:/I:/Processing_Unit/L145/Box127/L145Y1921I001S0005.tif</URL>
      <URI>file:/I:/Processing_Unit/L145/Box127/L145Y1921I001S0005.tif</URI>
      <READ>true</READ>
      <WRITE>true</WRITE>
      <EXTENSION>tif</EXTENSION>
      <MODIFIED>2009-04-02 11:17:31</MODIFIED>
      <DATE>20090402</DATE>
      <DATEPATTERN>yyyyMMdd</DATEPATTERN>
      <TIME>111731987</TIME>
      <TIMEPATTERN>HHmmssSSS</TIMEPATTERN>
      <TYPE>image/tiff</TYPE>
      <PID>null</PID>
      <OID>null</OID>
      <FID>null</FID>
      <PROCESSOR>unknown</PROCESSOR>
   </METADATA>
   <HEADER>
      <LITTLEENDIAN>true</LITTLEENDIAN>
      <VERSION>1.0</VERSION>
   </HEADER>
   <IMAGEFILEDIRECTORY>
      <ELEMENT>
         <NAME>NewSubfileType</NAME>
         <TAG>254</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>4</TYPE>
         <VALUE>0</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>ImageWidth</NAME>
         <TAG>256</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>2705</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>ImageLength</NAME>
         <TAG>257</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>2275</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>BitsPerSample</NAME>
         <TAG>258</TAG>
         <LENGTH>3</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>8</VALUE>
         <VALUE>8</VALUE>
         <VALUE>8</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Compression</NAME>
         <TAG>259</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>1</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>PhotometricInterpretation</NAME>
         <TAG>262</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>2</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>DocumentName</NAME>
         <TAG>269</TAG>
         <LENGTH>22</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>L145Y1921I001S0005.tif</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>ImageDescription</NAME>
         <TAG>270</TAG>
         <LENGTH>6</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>paper</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Make</NAME>
         <TAG>271</TAG>
         <LENGTH>10</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>Phase One</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Model</NAME>
         <TAG>272</TAG>
         <LENGTH>6</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>P 30+</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Orientation</NAME>
         <TAG>274</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>1</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>SamplesPerPixel</NAME>
         <TAG>277</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>3</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>RowsPerStrip</NAME>
         <TAG>278</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>2275</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>XResolution</NAME>
         <TAG>282</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>5</TYPE>
         <VALUE>300.0</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>YResolution</NAME>
         <TAG>283</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>5</TYPE>
         <VALUE>300.0</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>PlanarConfiguration</NAME>
         <TAG>284</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>1</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>ResolutionUnit</NAME>
         <TAG>296</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>3</TYPE>
         <VALUE>2</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Software</NAME>
         <TAG>305</TAG>
         <LENGTH>51</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>Capture One 4 Windows; Adobe Photoshop CS3 Windows</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>DateTime</NAME>
         <TAG>306</TAG>
         <LENGTH>20</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>2009:03:26 11:23:36</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Artist</NAME>
         <TAG>315</TAG>
         <LENGTH>33</LENGTH>
         <TYPE>2</TYPE>
         <VALUE>Preservation Center</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Custom</NAME>
         <TAG>34665</TAG>
         <LENGTH>1</LENGTH>
         <TYPE>4</TYPE>
         <VALUE>null</VALUE>
      </ELEMENT>
      <ELEMENT>
         <NAME>Custom</NAME>
         <TAG>34675</TAG>
         <LENGTH>560</LENGTH>
         <TYPE>7</TYPE>
         <VALUE>null</VALUE>
      </ELEMENT>
   </IMAGEFILEDIRECTORY>
</TIFF>

Мне нужно извлечь исходное имя документа - родительское имя TIFF - из каждого из этих файлов JP2.

Есть ли простой способ включить это в существующую процедуру сбора файлов, используя VBA/VBscript? Мне нужно будет иметь возможность обрабатывать сотни тысяч существующих файловых записей, чтобы получить это новое дополнительное значение, а также включить это извлечение в сканирование папок в будущем.

Заранее спасибо.

0 ответов

Другие вопросы по тегам