我收到了一个XML文件,并被要求更改填充颜色。我一直在尝试使用Element Tree,每次尝试访问节点时,都会遇到语法错误。我已经复制了下面需要解析的XML文件,然后在下面的代码中需要更改的内容:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px"
height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
<g id="Shapes">
<g id="RootTip">
<path fill="none" d="M98.178,143.456l112.03-0.079l-5.458,56.235c0,0-1.472,7.203-2.704,7.552s1.086,1.377,1.086,1.377
l-2.537,12.993l1.751,0.441l-5.252,13.787c0,0,0,6.126,0.219,7.658S196,244.079,196,244.079s-6.784,13.565-8.097,14.879
s-9.846,8.752-11.597,9.628s-10.941,4.158-10.941,4.158l0.209,1.312L159,273.619V275c0,0-13.547,1.683-17.486-0.943
s-12.035-7.439-14.879-10.284s-10.722-13.13-12.254-17.287s-7.44-18.38-7.002-20.568s1.094-3.501,1.094-3.501l-3.282-12.254
l-3.72-32.386l-0.875-5.688l-0.875-9.409L98.178,143.456z"/>
</g>
</g>
我需要将路径填充更改为任何颜色,例如&#34; blue&#34;或&#34;红色&#34;。
我在网上使用了这个教程,并尝试将其作为我的第一步:
import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()
for child in root:
print child.tag, child.attrib
但是,我一直得到这个语法消息??!
Traceback (most recent call last):
File "<string>", line 2, in <fragment>
Syntax Error: print child.tag, child.attrib: <string>, line 2, pos 15
有谁知道如何解决这个问题?我是编程新手,所以任何反馈都会非常感激。谢谢!
答案 0 :(得分:0)
我尝试过你的XML文件,但我遇到的问题是它不是有效的XML。
<svg>
错过</svg>
元素或仅<svg ... />
它会显示不同的错误消息,但我无法看到您的代码有任何问题,这对我也有用。
答案 1 :(得分:0)
问题在于您的XML&#39;文件。
我认为您正在查看this tutorial - 请参阅此XML文件的外观:
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
文件中的第一行声明了类型,说明它是哪个XML版本<?xml version="1.0"?>
您的文件首先声明它是SVG图形文件:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
将其与this example进行比较,您可以看到<?xml version
行必须先出现。
由于您刚刚开始,最好使用所提供的数据完成您正在使用的教程,然后在其工作后将其调整到您的文件。