在php中从文本文件中剥离字符串



我有文本,我需要从XML手动转换,因为它似乎不与php XML工具很好地工作

我已经到了这样的地步了

<option>9600</option> //wanted line
<scan:YResolution>9600</scan:YResolution> //unwanted line
<option>19200</option> //wanted line
<scan:YResolution>19200</scan:YResolution> //unwanted line

所以我试图找到一种方法来轻松地递归地消除不需要的行,并保留想要的行,不仅仅是xml开始和结束标记,而是值。

谁知道一个简单的方法来做到这一点?

感谢

标记

您的输入文件不是格式良好的XML文件。这就是为什么如上所述:

它似乎不能很好地与php xml工具一起工作

我添加了一个带有名称空间的根,以使输入文件成为合法的格式良好的XML文件。

下面的XSLT遵循所谓的恒等变换模式。输入XML

<root xmlns:scan="url">
<option>9600</option>
<scan:YResolution>9600</scan:YResolution>
<option>19200</option>
<scan:YResolution>19200</scan:YResolution>
</root>
XSLT>
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:scan="url">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="scan:YResolution"/>
</xsl:stylesheet>

输出XML

<root xmlns:scan="url">
<option>9600</option>
<option>19200</option>
</root>

最新更新