如何使用xmlpars编辑pmml模型文件

2024-06-24 12:08:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从生成的pmml文件中删除一些节点。所以我尝试在python中使用xml解析器:

from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse('treedemo.pmml')
for inter in tree.findall('DataDictionary'):
    print(inter)

结果打印输出什么都没有,这意味着xml解析器不能工作。pmml文件是here。假设我想删除

^{pr2}$

<DataField name="fk_057_nearcontact_auth_expire_time" optype="continuous" dataType="float">
    <Interval closure="closedClosed" leftMargin="21.0" rightMargin="46.0"/>
</DataField>

python可以编辑和修改pmml文件吗?在


Tags: 文件fromimporttree解析器for节点parse
1条回答
网友
1楼 · 发布于 2024-06-24 12:08:40

与其开发定制的XML操作代码,不如学习一种称为XSL Transformations(XSLT)的现有技术。在

简而言之,您需要创建一个XSL文档,它指定XML操作操作操作。然后可以使用命令行XSLT工具将此XSL文档应用于一个或多个XML文档(包括PMML文档)。例如,在GNU/Linux系统上,可以使用xsltproc工具。在

用于删除Interval元素的XSL文档:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pmml="http://www.dmg.org/PMML-4_2">
    <!  By default, copy all  >
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>
    <!  However, in case of the PMML Interval element, take no (copy-) action  >
    <xsl:template match="pmml:Interval"/>
</xsl:stylesheet>

请确保配置pmml名称空间前缀的值以匹配PMML文档的名称空间前缀。上面的例子适用于PMML模式版本4.2文档。在

然后,将样式表应用于PMML文件(命令语法xsltproc <XSL file> <PMML file(s)>):

^{pr2}$

相关问题 更多 >