2017-02-28 1 views
1


Ich versuche, eine Liste von Variablen in einigen Karte OUTSIDE-Programm automatisch zu bekommen. Ich weiß, dass ich sie in .process Datei finden kann, mit xml Struktur hat.
Ich fand auch heraus, dass "x: object" mit Variable enthält "x: Type" mit "MboField}" endet.
Aber leider muss ich Suchkriterien mehr eingrenzen, weil ich immer noch nicht das Hauptmerkmal finden kann, Variablen von anderen Objekten zu trennen.
Dies ist mein aktueller Code in C#:Liste der Variablen der Karte in BPM Metastorm

  var xdoc = XDocument.Load(patches.ProcessFilePatch); 
     var xmlns = XNamespace.Get("http://schema.metastorm.com/Metastorm.Common.Markup"); 

     IEnumerable<string> values = from x in xdoc.Descendants(xmlns+"Object") 
            where x.Attribute(xmlns+"Type").Value.ToString().EndsWith("MboField}") 
            select x.Attribute(xmlns+"Name").Value.ToString(); 

     VariablesInProcessFile = values.ToList(); 

noch andere Möglichkeiten, Variablen unter anderem zu finden?

Antwort

0
private void getVariablesInProcessFile() 
    { 
     var xdoc = XDocument.Load(patches.ProcessFilePatch); 
     var xmlns = XNamespace.Get("http://schema.metastorm.com/Metastorm.Common.Markup"); 

     var dane = xdoc.Descendants(xmlns + "Object").Where(x => CheckAttributes(x, xmlns)).ToArray(); 

     IEnumerable<string> valuesE = from x in dane.Descendants(xmlns + "Object") 
             where x.Attribute(xmlns + "Type").Value.ToString().EndsWith("MboField}") 
             select x.Attribute(xmlns + "Name").Value.ToString(); 

     VariablesInProcessFile = valuesE.ToList(); 
    } 

    private bool CheckAttributes(XElement x, XNamespace xmlns) 
    { 
     var wynik = x.Attribute(xmlns + "Name"); 

     return wynik != null && (wynik.Value == patches.MapName + "Data" || wynik.Value == patches.altMapName + "Data"); 
    } 

Wo „Patches“ meine eigene Klasse ist Patch enthält Datei und mögliche Namen der Gruppe von Variablen beträgt.Verfahren, in der Regel in dem Namen der Karte zusammen.

Verwandte Themen