我使用下面的函數在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