Я использую следующую функцию в php для загрузки документа xml в документ xslt, вывода xml и замены document.xml в слове docx:
$xmlDocument = new DOMDocument();
$xmlDocument->load('xml/' . $xmlfile);
$xsltDocument = new DOMDocument();
$xsltDocument->load($xsltFile);
$xsltProcessor = new XSLTProcessor();
$xsltProcessor->importStylesheet($xsltDocument);
Поэтому я обычно использую эту функцию вXSLT-файл для извлечения XML-переменной:
<xsl:value-of select="PORT_REQUEST/WICIS/REMARKS" />
Однако, поскольку XML-переменные загружаются непосредственно в документ XSLT, я не могу использовать свои дружественные PHP-выражения reg, и я изо всех сил пытаюсь выяснить, какчтобы сделать эту работу.Мне просто нужно вытащить XML var (номер телефона в формате 1112223333) и поместить его в формат 111-222-3333.
Вот что у меня есть:
<xsl:analyze-string select="PORT_REQUEST/NUMBER_PORTABILITY/ADMINISTRATIVE/ATN"
regex="(^.{3})|(.{4}$)|((?<=(^.{3}))(.*?)(?=(.{4}$)))">
<xsl:matching-substring>
<xsl:number value="regex-group(1)" format="001"/>
<xsl:number value="regex-group(2)" format="001"/>
<xsl:number value="regex-group(3)" format="0001"/>
</xsl:matching-substring>
</xsl:analyze-string>
И этоне работает, вместо переформатированного номера телефона я получаю пустой XML-документ, так как любая ошибка, которую я вызываю, убивает все это.Помощь