diff options
-rw-r--r-- | src/support/include_entity_resolver.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/support/include_entity_resolver.cc b/src/support/include_entity_resolver.cc index b9e20f9..deac1d5 100644 --- a/src/support/include_entity_resolver.cc +++ b/src/support/include_entity_resolver.cc @@ -40,11 +40,17 @@ namespace InputXSLT { boost::filesystem::path IncludeEntityResolver::getPathFromSystemId( const XMLCh* const systemId) { - return boost::filesystem::path( + const std::string rawPath( *XercesStringGuard<char>( shiftSystemIdPastPrefix(systemId) ) ); + + if ( auto extractedPath = extractFilePath(rawPath) ) { + return *extractedPath; + } else { + return boost::filesystem::path(rawPath); + } } IncludeEntityResolver::IncludeEntityResolver( |