相关疑难解决方法(0)

使用 python ElementTree 从 xml 获取名称空间

我使用 python 2.7 和 ElementTree 库。

我无法使用 lxml lib。

我需要获取字符串中的名称空间namespace_string。为了填充我的命名空间字典。

我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<AX_Bestandsdatenauszug
    xmlns="http://www.adv-online.de/namespaces/adv/gid/6.0"
    xmlns:adv="http://www.adv-online.de/namespaces/adv/gid/6.0"
    xmlns:gco="http://www.isotc211.org/2005/gco"
    xmlns:gmd="http://www.isotc211.org/2005/gmd"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:ows="http://www.opengis.net/ows"
    xmlns:wfs="http://www.adv-online.de/namespaces/adv/gid/wfs"
    xmlns:wfsext="http://www.adv-online.de/namespaces/adv/gid/wfsext"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ogc="http://www.adv-online.de/namespaces/adv/gid/ogc"
    xsi:schemaLocation="http://www.adv-online.de/namespaces/adv/gid/6.0 NAS-Operationen.xsd">

    <enthaelt>
            <gml:featureMember>
            <xmlstuff>....a lot of xml stuff....</xmlstuff>
            </gml:featureMember>
    </enthaelt>
</AX_Bestandsdatenauszug>
Run Code Online (Sandbox Code Playgroud)

代码:

import clr
import sys

clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
sys.path.append("C:\Program Files (x86)\IronPython 2.7\Lib")
import xml.etree.ElementTree as ET
from io import StringIO


xml="file.xml"

tree = ET.parse(xml)
root = tree.getroot()


my_schema = "namespace_string"

my_namespaces = dict([node for _, node in …
Run Code Online (Sandbox Code Playgroud)

xml dictionary elementtree python-2.7

8
推荐指数
2
解决办法
8280
查看次数

xml.etree.ElementTree - 无法设置 xmlns = '...'

我肯定错过了什么。我正在尝试设置 google 产品提要,但很难注册命名空间。

例子:

此处的路线:https : //support.google.com/merchants/answer/160589

尝试插入:

<rss version="2.0" 
xmlns:g="http://base.google.com/ns/1.0">
Run Code Online (Sandbox Code Playgroud)

这是代码:

from xml.etree import ElementTree
from xml.etree.ElementTree import Element, SubElement, Comment, tostring

tree = ElementTree
tree.register_namespace('xmlns:g', 'http://base.google.com/ns/1.0')
top = tree.Element('top')
#... more code and stuff
Run Code Online (Sandbox Code Playgroud)

代码运行后,一切都很好,但我们错过了 xmlns=

我发现在 php 中创建 XML 文档更容易,但我想我会尝试一下。我哪里错了?

关于这一点,也许有更合适的方法在 python 中执行此操作,而不是使用 etree?

python xml namespaces elementtree

3
推荐指数
1
解决办法
1502
查看次数

标签 统计

elementtree ×2

xml ×2

dictionary ×1

namespaces ×1

python ×1

python-2.7 ×1