2010-12-04 14 views
0

linqをvbで使用して「スタイル」属性のプロパティを抽出する方法は知っていますか? 例:svg.xml(典型的なSVG形式ファイル)linqを使ってsvgからhtmlへ

<rect x="20" y="20" width="250" height="250" 
style="fill:blue;stroke:pink;stroke-width:5;"/> 

から通常の属性はを取得するのは簡単です:VBで、LINQを使用すると、XMLの「幅」属性値を抽出するために@width指定します - "style"属性の "fill"、 "stroke"または "stroke-width"プロパティを参照してその値を抽出するにはどうすればよいですか?これの目的は、svgファイルをhtmlに変換して、色で塗りつぶされた矩形を表示することです。これは、ビジュアルベーシックでlinqを使って行う必要があります。何か案は?

答えて

2

style属性の内容はXMLではなく、テキスト(実際はCSS)です。だからXMLへのLinqはあなたの解析を助けることができません。あなたができることは、(Linq to XMLを使って)文字列に属性の内容を抽出し、文字列を手作業で解析することです。

Dim style As String = ... ' your Linq query 
Dim parts As String() = style.Split(New Char() {';'}, StringSplitOptions.RemoveEmptyEntries) 
Dim fillPart = parts.FirstOrDefault(Function(s) s.StartsWith("fill:") 
Dim fill As String 
If fillPart IsNot Nothing Then 
    parts = style.Split(';') 
    fill = parts(1) 
End If 
+0

質問を閉じるかキャンセルするにはどうすればよいですか? – Dan

+0

質問の最後に削除ボタンがあります。しかし、それが答えを持っているので、この1つを削除しないでください... –

+0

文字列置換機能を使用して上記を書き直す方法をご存知でしょうか?私は、私が望む価値のどちらかを置き換えることを考えていました。ワイルドカードを使ってregex.replaceを使って空の文字列を "青"にします。これは意味をなさないでしょうか?必要な値はexとして終わる必要があります。背景色:青色 - それがどんな値であっても。 – Dan

関連する問題