1

svg要素のラベルを取得したい。コンソール アプリケーションを作成し、svg ファイルを xml と考えました。要素のIDに従ってラベルを取得しようとしています。以下のコードを書いたとき、すべてのIDを取得しましたが、その行でラベルを取得できません。ラベルにアクセスするにはどうすればよいですか? 要素の例は次のとおりです。

<rect
       style="fill:#cccccc"
       id="21"
       width="35.823246"
       height="35.823246"
       x="299.87155"
       y="65.999405"
       class="seatObj"
       inkscape:label="A22" />

コードは次のとおりです。

class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(@"seatChart-01.svg");
            XmlNodeList elementList = doc.GetElementsByTagName("rect");
            string[] labels = new string[elementList.Count];
            for (int i = 0; i < elementList.Count; i++)
            {   
                int id = int.Parse(elementList[i].Attributes["id"].Value);
                labels[id] = elementList[i].Attributes["inkspace:label"].Value;             
            }
            for (int i = 0; i < labels.Length; i++)
            {
                Console.WriteLine(labels[i]);
            }
            Console.ReadLine();
       }
    }
4

1 に答える 1

1
elementList[i].Attributes["inkspace:label"].Value

する必要があります

elementList[i].Attributes["label", "http://www.inkscape.org/namespaces/inkscape"].Value

ここでは、名前空間がinkscape描画プログラムの名前空間であると想定しています。確認するには、ルート要素で次のようなものを探します...

xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
于 2013-10-23T13:02:03.980 に答える