我使用 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) 我有一个布尔值的列表,如
lyst = [True,True,False,True,False]
Run Code Online (Sandbox Code Playgroud)
和两个不同的列表,例如:
car = ['BMW','VW','Volvo']
a = ['b','c']
Run Code Online (Sandbox Code Playgroud)
我只想将值替换为True,将car
False替换为值a
.或使从序列的新列表lyst
和值从car
和a
.结果应该是
[BMW,VW,b,Volvo,c].
Run Code Online (Sandbox Code Playgroud)
我的代码到目前为止:
for elem1,elem2,elem3 in zip(lyst,car,a):
subelem2=elem2
subelem3=elem3
if elem1 != True:
result_list.append(subelem2)
else:
result_list.append(subelem3)
Run Code Online (Sandbox Code Playgroud)
但这会创建一个长于5的列表匹配.
我怎样才能做到这一点?