Попробуйте приведенный ниже код:
var frags = _viewer.model.getFragmentList().fragments.fragId2dbId;
frags.forEach(function(frag){
frag.forEach(function(dbId){
if (dbId<0) return;
dbids.push(dbId);
});
});
В качестве альтернативы вы можете выполнить итерацию дерева экземпляров через API производных моделей для обработки сравнения на стороне сервера - подробности см. Здесь
ClassLoader.getResourceAsStream ()
.
Как указано в комментарии ниже, если вы находитесь в среде с несколькими ClassLoader
(например, модульным тестированием, веб-приложениями и т. Д.), Вам может понадобиться использовать Thread.currentThread (). getContextClassLoader ()
. См. http://stackoverflow.com/questions/2308188/getresourceasstream-vs-fileinputstream/2308388#comment21307593_2308388 .
Это зависит от того, где именно находится файл XML. Находится ли он в папке источников (в «пакете по умолчанию» или в «корне») или в той же папке, что и класс?
В первом случае вы должны использовать « /file.xml
"(обратите внимание на начальную косую черту), чтобы найти файл, и не имеет значения, какой класс вы используете, чтобы попытаться найти его.
Если файл XML находится рядом с каким-то классом, SomeClass.class.
ClassLoader.class.getResourceAsStream ("/ path / to / your / xml")
и убедитесь, что ваш скрипт компиляции копирует файл xml в то место, где находится ваш CLASSPATH.
someClassWithinYourSourceDir.getClass (). GetResourceAsStream ();