簡體   English   中英

如何訪問 xml 標簽中以逗號分隔的元素?

[英]How can I access the elements separated by comma in xml tags?

我需要將用逗號分隔的元素存儲在 xml 標簽中

例如,這些 x 和 y 坐標:

<points>
    <point>558.000000,790.000000</point>
    <point>530.000000,829.000000</point>
    <point>567.000000,855.000000</point>
    <point>595.000000,815.000000</point>
    <point>558.000000,790.000000</point>
</points>

我嘗試過這樣的事情

x1, y1 = ((item.getElementsByTagName('points')[0]).getElementsByTagName('point')[0]).firstChild.data

但是出現以下錯誤

ValueError: too many values to unpack (expected 2)

對此的任何幫助將不勝感激。

你可以使用

import xml.etree.ElementTree as ET

data = """
<points>
    <point>558.000000,790.000000</point>
    <point>530.000000,829.000000</point>
    <point>567.000000,855.000000</point>
    <point>595.000000,815.000000</point>
    <point>558.000000,790.000000</point>
</points>
"""

tree = ET.fromstring(data)
for element in tree:
    x,y = element.text.split(",")
    print(x, y)

我最近致力於訪問 XML 標簽,我更喜歡xml.dom.minidom的 xml.dom.minidom 庫用於此用途。

問題中上述 XML 標簽的代碼是:

import xml.dom.minidom as minidom

name = "<points><point>558.000000,790.000000</point><point>530.000000,829.000000</point><point>567.000000," \
       "855.000000</point><point>595.000000,815.000000</point><point>558.000000,790.000000</point></points> "
point = []
xml_loaded = minidom.parseString(name)
Points_Node = xml_loaded.getElementsByTagName("points")
for Main_Node in range(len(Points_Node)):
    Point_Child = Points_Node[Main_Node].getElementsByTagName("point")

for Child_Node in range(len(Point_Child)):
    point.append((Point_Child[Child_Node].firstChild.nodeValue).split(","))

print(point)

上述代碼的 output 用 x 和 y 坐標拆分,並按照您在問題中的要求存儲在一個數組中。 output 如下圖所示:

[['558.000000', '790.000000'], ['530.000000', '829.000000'], ['567.000000', '855.000000'], ['595.000000', '815.000000'], ['558.000000', '790.000000']]

希望對您有所幫助,如果這是您想要的,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM