2010-12-04 4 views
0

Savez-vous comment extraire une propriété de l'attribut "style" avec linq dans vb? ex: à partir svg.xml (un fichier de type svg typique)svg en html en utilisant linq

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

Les attributs réguliers sont faciles d'accès: en vb, avec LINQ vous spécifiez @width pour extraire la valeur de l'attribut "width" xml - Comment faire référence à la propriété "fill", "stroke" ou "stroke-width" de l'attribut "style" pour extraire leur valeur? Le but de ceci est de transformer un fichier svg en HTML affichant des rectangles remplis de couleur. Cela doit être fait avec linq en Visual Basic. Des idées?

Répondre

2

Le contenu de l'attribut style n'est pas XML, c'est juste du texte (en fait, CSS en fait). Linq to XML ne peut donc pas vous aider à l'analyser. Ce que vous pouvez faire est d'extraire le contenu de l'attribut en une chaîne (en utilisant Linq to XML), puis analyser la chaîne manuellement

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

Comment fermer ou annuler une question? – Dan

+0

Vous devriez avoir un bouton de suppression au bas de la question. Mais ne supprimez pas celui-ci, car il a une réponse ... –

+0

Savez-vous comment réécrire ce qui précède en utilisant la chaîne Remplacer la fonction? Je pensais remplacer chaque côté de la valeur que je veux, ex. "bleu" avec des chaînes vides en utilisant regex.replace avec des caractères génériques. Cela a-t-il un sens? La valeur requise doit finir comme ex. background-color: blue - ou quelle que soit la valeur. – Dan