Как перехватить узел XML при разборе с SAX - PullRequest
0 голосов
/ 26 ноября 2010

Я работаю над приложением Java Web Start.Он использует конфигурационный XML, который определяет, как обслуживать ресурсы для клиентов.Есть некоторые ресурсы, которые генерируются во время запросов.Я обрабатываю основной файл конфигурации с помощью пользовательского обработчика SAXParser.

В файле конфигурации я хотел бы добавить встроенную часть определения XML, в которой корневой узел обслуживаемого XML-документа является дочерним узлом.

Например:

<Resources>
  <!-- other resource definitions -->
  <EmbeddedXMLResource mapsForRequest="embedded.xml">
    <HiThere>
      <ThisIsAnEmbeddedXMLDocument/>
    </HiThere>
  </EmbeddedXMLResource>
  <!-- ... -->
</Resources>

Мне интересно, есть ли способ чтения узла <HiThere> в документ DOM или, по крайней мере, захватить внутреннее содержимое <EmbeddedXMLResource> в строку, пропускаяОбработка SAX?

Я думал о том, чтобы поместить встроенный контент в раздел CDATA.Таким образом, я могу читать встроенный XML как текстовый узел, но потерю подсветку синтаксиса в редакторах на встроенных узлах.

1 Ответ

0 голосов
/ 26 ноября 2010

Возможно ...

  1. При запуске элемента HiThere получить начальную позицию в файле с локатором
  2. On endElement HiThere также получить конечную позицию.
  3. Откройте ресурс xml с помощью другого приложения Reader и извлеките соответствующую часть в виде строки и т. Д.

Смешной.

...