Jackalope\ImportExport\ImportExport::unescapeXmlName PHP Method

unescapeXmlName() public static method

Helper method to unescape node names that encoded invalid things for xml. At the same time, change document namespace prefix to repository prefix if needed.
public static unescapeXmlName ( string $name, array $namespaceMap ) : string
$name string A name encoded with escapeXmlName
$namespaceMap array
return string the decoded name
    public static function unescapeXmlName($name, array $namespaceMap)
    {
        foreach (self::$escaping as $raw => $escaped) {
            // Used a negative look behind to only replace non-escaped escape characters
            $name = preg_replace(sprintf('/(?<!_x005f)%s/', preg_quote($escaped)), $raw, $name);
        }
        // Now replace all escape characters with a regular underscore
        $name = preg_replace('/_x005f_(x[0-9a-zA-F])/', '_\\1', $name);
        return self::cleanNamespace($name, $namespaceMap);
    }

Usage Example

 /**
  * @dataProvider escapeDataProvider
  */
 public function testUnescapeXmlName($expectedOutput, $input)
 {
     $this->assertEquals($expectedOutput, ImportExport::unescapeXmlName($input, array()));
 }