我使用下面的函数在PHP中的XML文档加载到一个XSLT文件,输出XML,并且在字的docx更换document.xml中:编辑字符串在XSLT分析串
$xmlDocument = new DOMDocument();
$xmlDocument->load('xml/' . $xmlfile);
$xsltDocument = new DOMDocument();
$xsltDocument->load($xsltFile);
$xsltProcessor = new XSLTProcessor();
$xsltProcessor->importStylesheet($xsltDocument);
所以我通常使用此功能在XSLT文件拉一个XML VAR:
<xsl:value-of select="PORT_REQUEST/WICIS/REMARKS" />
然而,由于XML瓦尔直接加载到XSLT文件,我不能用我的友好PHP REG EXP的,和我奋力极大努力弄清楚如何使这项工作。我只需要将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文档,任何错误,我引起杀死的整个事情。 帮助
好问题,到目前为止,但只要你键入“它不工作,”你要问:有我告诉正是导致我的预期,而我得到了什么结果呢?在这种情况下,后者似乎缺失。 – LarsH 2012-03-07 22:04:38
结果我希望:“我只需要将XML var(电话号码为1112223333格式)并将其放入111-222-3333格式。”我每次都得到一个空的xml文件。它只是杀死了整个事情,我得到的唯一错误信息是“必须至少有一个根节点” – user1255749 2012-03-07 22:10:45