2010-12-04 8 views
0

Wissen Sie, wie man eine Eigenschaft des Attributs "style" mit linq in vb extrahiert? ab: von svg.xml (eine typische SVG-Typ-Datei)svg zu html mit linq

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

Die regelmäßigen Attribute sind leicht zu erreichen: in vb, mit Linq würde geben Sie @width die xml „Breite“ Attributwert zu extrahieren - Wie verweisen wir auf die Eigenschaft "fill", "stroke" oder "stroke-width" des Attributs "style", um deren Wert zu extrahieren? Das Ziel ist es, eine SVG-Datei in HTML umzuwandeln, die Rechtecke zeigt, die mit Farbe gefüllt sind. Dies muss mit LINQ in Visual Basic geschehen. Irgendwelche Ideen?

Antwort

2

Der Inhalt des Attributs style ist nicht XML, es ist nur Text (na ja, CSS tatsächlich). Linq to XML kann Ihnen nicht helfen, es zu analysieren. Was Sie tun könnten, ist den Inhalt des Attributs in eine Zeichenfolge (mit Linq zu XML) zu extrahieren und dann die Zeichenfolge manuell zu analysieren

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

Wie kann ich eine Frage schließen oder abbrechen? – Dan

+0

Sie sollten eine Schaltfläche zum Löschen am Ende der Frage haben. Aber löschen Sie dieses nicht, da es eine Antwort hat ... –

+0

Wüssten Sie, wie man das oben genannte unter Verwendung der Schnur Replace-Funktion neu schreibt? Ich dachte daran, beide Seiten des Wertes, den ich will, zu ersetzen. "blue" mit leeren Strings mit regex.replace mit Platzhaltern. Macht das irgendeinen Sinn? Der gewünschte Wert muss als ex enden. Hintergrundfarbe: Blau - oder welcher Wert auch immer. – Dan