我想使用preg_replace()
将以下xml代码(xml的一小部分)更改为html。我尝试了xml解析工具,但我在xml的其余部分遇到了问题,因此我尝试找到像preg_replace()
这样的解决方案。
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Smith</surname>
<given-names>John</given-names>
</name>
<xref ref-type="aff" rid="aff1">1</xref>
<xref ref-type="corresp" rid="cor1" />
</contrib>
<contrib contrib-type="author">
<name>
<surname>Hoper</surname>
<given-names>Alfred</given-names>
</name>
<xref ref-type="aff" rid="aff2">2</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Bay</surname>
<given-names>Elisabeth</given-names>
</name>
<xref ref-type="aff" rid="aff3">3</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Back</surname>
<given-names>James</given-names>
</name>
<xref ref-type="aff" rid="aff2">2</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Hampton</surname>
<given-names>George</given-names>
</name>
<xref ref-type="aff" rid="aff4">4</xref>
</contrib>
</contrib-group>
最终文本应该是:
Smith J<sup>1*</sup>, Hoper A<sup>2</sup>, Bay E<sup>3</sup>, Back J<sup>2</sup>, Hampton G<sup>4</sup>
我可以使用以下表达式更改其中一些:
$data = preg_replace('/<xref(.*?)>(.*?)<\/xref>/i', '<sup>$2</sup>', $data);
$data = preg_replace('/</contrib>.*?<contrib contrib-type="author">/i', ', ', $data);
但我不能做所有这些。
有可能吗?