Moin!
diesmal habe ich eine ganz spezielle Frage, die ich vermutlich so gar nicht gelöst bekomme.
Bei uns gibt es Konfigurationsdateien im XML-Format:
Wiederkehrend gibt es Blöcke mit FILLCOLOR und LINECOLOR
oder
zu denen es in der nächsten Zeile ein Wert gibt
Jetzt wollen wir eine Kopie davon erstellen und in dieser sollen Farbwerte gegen andere ausgetauscht werden.
Es müßte nun eine Funktion geben die nacheinander die Zeilen durchgeht. Wird eine Zeile mit ParameterIdentifier gefunden, dann weiß das Programm das in der nächsten Zeile eine Farbe definiert ist.
Diese wird nun ausgelesen und in einer einfachen Tabelle nachgesehen wie der neue Wert lautet. Wurde dieser ermittelt, dann wird der neue Wertü übernommen und weiter geht es in der nächsten Zeile.
....
Mir ist bekannt, dass es gar nicht so einfach sein wird und derzeit überschreitet diese Aufgabenstellung noch unseren .net-Horizont.
Kann uns dennoch einer weiterhelfen ?
Gruß Jan
diesmal habe ich eine ganz spezielle Frage, die ich vermutlich so gar nicht gelöst bekomme.
Bei uns gibt es Konfigurationsdateien im XML-Format:
...
</rdf:Description>
<rdf:Description rdf:about="EBL_KANAL:WW_MANHOLE2">
<ns0:LayerDefinitionResourceStream xmlns:ns0="http://www.autodesk.com/gis/resource/definitions/" xml:lang="en" rdf:parseType="Literal">
<LayerDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="LayerDefinition-2.4.0.xsd" version="2.4.0">
<VectorLayerDefinition>
<ResourceId>fsd://Topobase_2</ResourceId>
<FeatureName>EBL_KANAL:WW_MANHOLE</FeatureName>
<FeatureNameType>FeatureClass</FeatureNameType>
<Geometry>GEOM</Geometry>
<VectorScaleRange>
<CompositeTypeStyle>
<CompositeRule>
<LegendLabel>Ein und Auslauf Graben</LegendLabel>
<Filter>ID_EBL_HYDRAULIK = 6 AND ID_SITE_FUNCTION in (7,11)</Filter>
<CompositeSymbolization>
<SymbolInstance>
<SimpleSymbolDefinition>
<Name>Quadrat</Name>
<Description>Standard-Punktsymbol</Description>
<Graphics>
<Path>
<Geometry>M -1.0,-1.0 L 1.0,-1.0 L 1.0,1.0 L -1.0,1.0 L -1.0,-1.0</Geometry>
<ScaleX>%StyleEditorGenerated_ScaleX_0%</ScaleX>
<ScaleY>%StyleEditorGenerated_ScaleY_0%</ScaleY>
<FillColor>%FILLCOLOR%</FillColor>
<LineColor>%LINECOLOR%</LineColor>
<LineWeight>%LINEWEIGHT%</LineWeight>
<LineCap>%StyleEditorGenerated_LineCap_0%</LineCap>
<LineJoin>%StyleEditorGenerated_LineJoin_0%</LineJoin>
...
<Override>
<SymbolName>Quadrat</SymbolName>
<ParameterIdentifier>FILLCOLOR</ParameterIdentifier>
<ParameterValue>0xffff0000</ParameterValue>
</Override>
Wiederkehrend gibt es Blöcke mit FILLCOLOR und LINECOLOR
<ParameterIdentifier>FILLCOLOR</ParameterIdentifier>
oder
<ParameterIdentifier>LINECOLOR</ParameterIdentifier>
zu denen es in der nächsten Zeile ein Wert gibt
<ParameterValue>0xff000000</ParameterValue>
Jetzt wollen wir eine Kopie davon erstellen und in dieser sollen Farbwerte gegen andere ausgetauscht werden.
Es müßte nun eine Funktion geben die nacheinander die Zeilen durchgeht. Wird eine Zeile mit ParameterIdentifier gefunden, dann weiß das Programm das in der nächsten Zeile eine Farbe definiert ist.
Diese wird nun ausgelesen und in einer einfachen Tabelle nachgesehen wie der neue Wert lautet. Wurde dieser ermittelt, dann wird der neue Wertü übernommen und weiter geht es in der nächsten Zeile.
....
Mir ist bekannt, dass es gar nicht so einfach sein wird und derzeit überschreitet diese Aufgabenstellung noch unseren .net-Horizont.
Kann uns dennoch einer weiterhelfen ?
Gruß Jan