suchen
HeimBackend-EntwicklungXML/RSS-TutorialBeispielcode-Freigabe eines benutzerdefinierten dynamischen XML-Konfigurationsprogramms

Übersicht

1 Bei der Programmentwicklung verwenden wir häufig die folgenden zwei Grundmodule

1> Legen Sie die Grundparameter des Programms fest, z. B. Paging-Parameter, E-Mail-Parameter usw. ;

2> Bei der Entwicklung basierend auf der tabellengesteuerten Entwicklung wird eine gewisse Beurteilungslogik in die Tabellendaten eingefügt

2 Unter diesen beiden Grundanwendungen haben wir die folgenden Anforderungen:

1> Zentral zu verwalten

2 Um Parameter zu ändern, ohne das System neu zu starten;

Hauptfunktionen des Programms

1> Legen Sie grundlegende Parameter des Programms fest, wie z. B. Paging-Parameter, E-Mail-Parameter usw.;

----Konfiguration automatisch hinzufügen Informationen in XML an die entsprechende Entität.

2> Bei der Entwicklung basierend auf der tabellengesteuerten Entwicklung wird eine gewisse Beurteilungslogik in die Tabellendaten eingefügt.

----Dctionary-Daten automatisch in XML in die entsprechende Entität laden. Allerdings muss diese Methode weiter optimiert werden. Jetzt unterstützt sie nur noch das Laden von Dictionary und muss komplexere Strukturen unterstützen.

Hauptcode

1 Definieren Sie zunächst die Entität und referenzieren Sie sie im Code.

Beispiel

2 Definieren Sie die entsprechende XML-Datei. Unter anderem werden die grundlegenden Konfigurationsinformationen des Programms unter dem Knoten AppSettings
public class AppSetting
{
    public string PageSize;
    public string WebUrl;
 
    public Dictionary<string, string> IsPartialPayment;
    public Dictionary<string, string> EntityCurrency;
}

konfiguriert.

3 Schließlich ist ein Stück XML-Ladecode erforderlich, um die XML-Konfigurationsinformationen in 2 in die Entität in 1 zu laden.
<?xml version="1.0" encoding="utf-8" ?>
<settings>
  <DictSettings>
    <Dict name="AppSettings" >
      <add key="PageSize" value="2"></add>
      <add key="WebUrl" value="www.baidu.com"></add>
    </Dict>
    <Dict name="IsPartialPayment">
      <add key="TTPART" value="true"></add>
      <add key="TT50/50" value="true"></add>
    </Dict>
    <Dict name="EntityCurrency">
      <add key="China" value="CNY"></add>
      <add key="HQ" value="USD"></add>
      <add key="Default" value="USD"></add>
    </Dict>
  </DictSettings>
</settings>

Endeffekt
public static class ConfigManager
    {
        public static AppSetting AppSetting;
        private static string xmlPath;
 
        public static Dictionary<string, Dictionary<string, string>> DictAppSettings = new Dictionary<string, Dictionary<string, string>>();
        static ConfigManager()
        {
            xmlPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory.ToString(), "AppConfig.xml");
            LoadSettings(xmlPath);
        }
 
        private static void LoadSettings(string path)
        {
            DictAppSettings.Clear();
            //加载XML中所有的key,value,并转换成Dictionary对象
            XmlNode dictRootNode = FileHelper.GetXMLNode(path, "/settings/DictSettings");
            foreach (XmlNode dictType in dictRootNode.ChildNodes)
            {
                Dictionary<string, string> dict = new Dictionary<string, string>();
                foreach (XmlNode dictItem in dictType.ChildNodes)
                {
                    dict.Add(dictItem.Attributes["key"].Value.Trim(), dictItem.Attributes["value"].Value.Trim());
                }
                DictAppSettings.Add(dictType.Attributes["name"].Value.Trim(), dict);
            }
 
            //将Dictionary 对象转换成实体的字段和对应dctionary上
            var serializer = new JavaScriptSerializer();
            //将AppSettings转成json
            string jAppSetting = serializer.Serialize(DictAppSettings["AppSettings"]);
            DictAppSettings.Remove("AppSettings");
            //将除AppSettings中的信息转成json
            string jDict = serializer.Serialize(DictAppSettings);
            //将AppSettings和其它的Dictionary 加载到对应的实体中去。
            string json = string.Format("{0},{1}", jAppSetting.Remove(jAppSetting.Length - 1), jDict.Remove(0, 1));
            AppSetting = serializer.Deserialize<AppSetting>(json);
 
            //当修改文件时,重新加载XML
            FileHelper.CacheDependencyFile(path, CacheRemovedCallback);
        }
 
        private static void CacheRemovedCallback(string key, object value, CacheItemRemovedReason reason)
        {
            //此方法来自Fish.Li
            string xmlFilePath = (string)value;
 
            // 由于事件发生时,文件可能还没有完全关闭,所以只好让程序稍等。
            System.Threading.Thread.Sleep(3000);
 
            LoadSettings(xmlFilePath);
        }
    }
 
    public static class FileHelper
    {
        public static XmlNode GetXMLNode(string path, string xPath)
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(path);
            return xmlDoc.SelectSingleNode(xPath);
        }
 
        public static void CacheDependencyFile(string path, CacheItemRemovedCallback removedCallback)
        {
            CacheDependency dep = new CacheDependency(path);
            HttpRuntime.Cache.Insert(Guid.NewGuid().ToString(), path, dep,
                Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, removedCallback);
        }
    }

1 Bei der ersten Ausführung des Programms werden die entsprechenden Konfigurationsinformationen ausgegeben

Beispielcode-Freigabe eines benutzerdefinierten dynamischen XML-Konfigurationsprogramms2 Wenn der geänderte Teil Beim Ändern von Parametern können die neuesten Informationen ohne Neustart abgerufen werden. Beachten Sie, dass die Seite aktualisiert wird, nachdem die Parameter 3 Sekunden lang geändert wurden

Das obige ist der detaillierte Inhalt vonBeispielcode-Freigabe eines benutzerdefinierten dynamischen XML-Konfigurationsprogramms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Erstellen von RSS-Dokumenten: Ein Schritt-für-Schritt-TutorialErstellen von RSS-Dokumenten: Ein Schritt-für-Schritt-TutorialApr 13, 2025 am 12:10 AM

Die Schritte zum Erstellen eines RSS -Dokuments sind wie folgt: 1. Schreiben Sie im XML -Format mit dem Stammelement, einschließlich der Elemente. 2. Hinzufügen usw. Elemente, um Kanalinformationen zu beschreiben. 3. Fügen Sie Elemente hinzu, die jeweils einen Inhaltseintrag darstellen, einschließlich ,,,,,,,,,. 4. Fügen Sie optional Elemente hinzu, um den Inhalt zu bereichern. 5. Stellen Sie sicher, dass das XML -Format korrekt ist, verwenden Sie Online -Tools, um die Leistung zu optimieren und den Inhalt auf dem neuesten Stand zu halten.

Die Rolle von XML in RSS: Die Grundlage von syndizierten InhaltenDie Rolle von XML in RSS: Die Grundlage von syndizierten InhaltenApr 12, 2025 am 12:17 AM

Die Kernrolle von XML in RSS besteht darin, ein standardisiertes und flexibles Datenformat bereitzustellen. 1. Die Struktur- und Markup -Sprachmerkmale von XML machen es für den Datenaustausch und Speicher für den Daten. 2. RSS verwendet XML, um ein standardisiertes Format zu erstellen, um die Inhaltsfreigabe zu erleichtern. 3. Die Anwendung von XML in RSS enthält Elemente, die Futterinhalte wie Titel und Veröffentlichungsdatum definieren. 4. Vorteile umfassen Standardisierung und Skalierbarkeit sowie Herausforderungen umfassen dokumentausführende und strenge Syntaxanforderungen. 5. Zu den Best Practices gehört die Validierung der XML -Gültigkeit, die einfache Haltung, die Verwendung von CDATA und die regelmäßige Aktualisierung.

Von XML zu lesbaren Inhalten: entmystifizierende RSS -FeedsVon XML zu lesbaren Inhalten: entmystifizierende RSS -FeedsApr 11, 2025 am 12:03 AM

RssfeedsarexmldocumentsUTForContentAggregation und Distribution

Gibt es eine RSS -Alternative, die auf JSON basiert?Gibt es eine RSS -Alternative, die auf JSON basiert?Apr 10, 2025 am 09:31 AM

JSONFEED ist eine JSON-basierte RSS-Alternative, die die Einfachheit und Benutzerfreundlichkeit hat. 1) JSONFEED verwendet das JSON -Format, das leicht zu erzeugen und analysieren zu können. 2) Es unterstützt die dynamische Generation und eignet sich für die moderne Webentwicklung. 3) Die Verwendung von JSONFeed kann die Effizienz und die Benutzererfahrung des Inhaltsmanagements verbessern.

RSS -Dokumentenwerkzeuge: Erstellen, Validieren und Veröffentlichen von FeedsRSS -Dokumentenwerkzeuge: Erstellen, Validieren und Veröffentlichen von FeedsApr 09, 2025 am 12:10 AM

Wie baue, validieren und veröffentlichen Sie RSSFeeds? 1. Build: Verwenden Sie Python -Skripte, um RSSFeed einschließlich Titel, Link, Beschreibung und Veröffentlichungsdatum zu generieren. 2. Überprüfung: Verwenden Sie Feedvalidator.org oder Python -Skript, um zu überprüfen, ob RSSFeed die RSS2.0 -Standards entspricht. 3. Veröffentlichen: Laden Sie RSS -Dateien auf den Server hoch oder verwenden Sie Flask, um RSSFeed dynamisch zu generieren und zu veröffentlichen. Durch diese Schritte können Sie Inhalte effektiv verwalten und teilen.

Sicherung Ihrer XML/RSS -Feeds: Eine umfassende Sicherheits -ChecklisteSicherung Ihrer XML/RSS -Feeds: Eine umfassende Sicherheits -ChecklisteApr 08, 2025 am 12:06 AM

Methoden zur Gewährleistung der Sicherheit von XML/RSSFeeds umfassen: 1. Datenüberprüfung, 2. Verschlüsselter Transmission, 3. Zugriffskontrolle, 4. Protokolle und Überwachung. Diese Maßnahmen schützen die Integrität und Vertraulichkeit von Daten durch Netzwerksicherheitsprotokolle, Datenverschlüsselungsalgorithmen und Zugriffskontrollmechanismen.

XML/RSS -Interview Fragen und Antworten: Stufen Sie Ihr Fachwissen aufXML/RSS -Interview Fragen und Antworten: Stufen Sie Ihr Fachwissen aufApr 07, 2025 am 12:19 AM

XML ist eine Markup-Sprache, die zum Speichern und Übertragen von Daten verwendet wird, und RSS ist ein XML-basiertes Format, das zur Veröffentlichung häufig aktualisierter Inhalte verwendet wird. 1) XML beschreibt Datenstrukturen durch Tags und Attribute, 2) RSS definiert spezifische Tag -Veröffentlichungen und abonnierte Inhalte, 3) XML kann erstellt und unter Verwendung von Pythons xml.etree.elementtree -Modul, 4) XML -Knoten für Xpath Expressions, 5). Validiert werden durch Xmllint, 7) Verarbeitung großer XML -Dateien mit SAX -Parser kann die Leistung optimieren.

Advanced XML/RSS -Tutorial: Ace Ihr nächstes technisches InterviewAdvanced XML/RSS -Tutorial: Ace Ihr nächstes technisches InterviewApr 06, 2025 am 12:12 AM

XML ist eine Markup-Sprache für die Datenspeicherung und -austausch, und RSS ist ein XML-basiertes Format für die Veröffentlichung aktualisierter Inhalte. 1. XML definiert Datenstrukturen, die für den Datenaustausch und Speicher geeignet sind. 2.RSS wird für das Inhaltsabonnement verwendet und verwendet spezielle Bibliotheken bei der Parsen. 3. Wenn Sie XML analysieren, können Sie DOM oder SAX verwenden. Beim Generieren von XML und RSS müssen Elemente und Attribute korrekt festgelegt werden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung