すべての XML ノードの読み取りと書き込みに関する個人的な概要と、XML ノードの読み取りに関するデータの概要
読み取り:
//打开某文件(假设web.config在根目录中) string filename=Server.MapPath("/") + @"Webapplication1\web.config"; xmlDocument xmldoc= new XmlDocument(); xmldoc.Load(filename); //得到顶层节点列表 XmlNodeList topM=xmldoc.DocumentElement.ChildNodes; foreach(XmlElement element in topM) { if(element.Name.ToLower()=="appsettings") { //得到该节点的子节点 XmlNodeList nodelist=element.ChildNodes; if ( nodelist.Count >0 ) { //DropDownList1.Items.Clear(); foreach(XmlElement el in nodelist)//读元素值 { //DropDownList1.Items.Add(el.Attributes["key"].InnerXml); //this.TextBox2.Text=el.Attributes["key"].InnerText; this.TextBox2.Text=el.Attributes["key"].Value; this.Label1.Text=el.Attributes["value"].Value; //同样在这里可以修改元素值,在后面save。 // el.Attributes["value"].Value=this.TextBox2.Text; } } } }
xmldoc.Save(filename);
特定のノードの下に要素を追加し、値を設定します:
if(element.Name.ToLower()=="appsettings") { XmlElement elem =xmldoc.CreateElement("add"); element.AppendChild(elem); elem.InnerText="ltp"; xmldoc.Save(filename); }
効果:
<appSettings> <add key="密码" value="admin" /> <add>ltp</add> </appSettings>
特定のノードの下に要素を追加し、2 つの属性を追加します:
if(element.Name.ToLower()=="appsettings") { XmlElement elem =xmldoc.CreateElement("add"); element.AppendChild(elem); XmlAttribute xa=xmldoc.CreateAttribute("key"); xa.Value="ltp"; XmlAttribute xa2=xmldoc.CreateAttribute("value"); xa2.Value="first"; elem.SetAttributeNode(xa); elem.SetAttributeNode(xa2); xmldoc.Save(filename); }
効果:
<appSettings> <add key="密码" value="admin" /> <add key="ltp" value="first" /> </appSettings> //添加空元素: XmlNode node=doc.CreateElement(groupname); node.InnerText=""; doc.LastChild.AppendChild(node); doc.Save(xmlfile);
ノード要素を削除します
string itemname=this.listBox1.SelectedItem.ToString(); this.listBox1.Items.Remove(this.listBox1.SelectedItem); //begin del xmlfile XmlDocument doc=new XmlDocument(); doc.Load(xmlfile); XmlNodeList topM=doc.DocumentElement.ChildNodes; foreach(XmlElement element in topM) { if(element.Name==this.comboBox1.Text) { //得到该节点的子节点 XmlNodeList nodelist=element.ChildNodes; foreach(XmlElement el in nodelist)//读元素值 { if(el.Attributes["key"].Value==itemname) { element.RemoveChild(el); } }//循环元素 }//得到组 }//循环组 doc.Save(xmlfile); //一定要保存一下,否则不起作用 //筛选数据 PRivate void Reader_Xml(string pathFlie) { XmlDocument Xmldoc=new XmlDocument(); Xmldoc.Load(pathFlie); XmlNodeList Record1=Xmldoc.DocumentElement.SelectNodes(Code[@id='1']) int f=0; foreach(XmlNode xnode in Record1) { } } /**//*读取xml数据 两种xml方式*/ <aaa> <bb>something</bb> <cc>something</cc> </aaa> <aaa> <add key="123" value="321"/> </aaa> /**//*第一种方法*/ DS.ReadXml("your xmlfile name"); Container.DataItem("bb"); Container.DataItem("cc"); DS.ReadXmlSchema("your xmlfile name"); /**//*第二种方法*/ <aaa> <add key="123" value="321"/> </aaa>
123 を見つけて 321 を取得したい場合は何を書けばよいでしょうか?
using System.XML; XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument(); xmlDoc.Load(@"c:\Config.xml"); XmlElement elem = xmlDoc.GetElementById("add"); string str = elem.Attributes["value"].Value /**//*第三种方法: SelectSingleNode 读取两种格式的xml *---/ -------------------------------------------------------------------- <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <ConnectionString>Data Source=yf; user id=ctm_dbo;passWord=123</ConnectionString> </appSettings> </configuration> -------------------------------------------------------------------------- XmlDocument doc = new XmlDocument(); doc.Load(strXmlName); XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionString"); if(node!=null) { string k1=node.Value; //null string k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123 string k3=node.InnerXml;//Data Source=yf; user id=ctm_dbo;password=123 node=null; } ******************************************************************** <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="ConnectionString" value="Data Source=yf; user id=ctm_dbo;password=123" /> </appSettings> </configuration> **--------------------------------------------------------------------** XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add"); if(node!=null) { string k=node.Attributes["key"].Value; string v=node.Attributes["value"].Value; node=null; } *--------------------------------------------------------------------* XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add"); if(node!=null) { XmlNodeReader nr=new XmlNodeReader(node); nr.MoveToContent(); //检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。 nr.MoveToAttribute("value"); string s=nr.Value; node=null; }
上記は、XML のすべてのノードの読み取りと書き込みに関する個人的な概要と、XML ノードの読み取りにおけるデータの概要です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









コンピューター プログラミングを行う場合、特定のノードから D 単位以上離れたノードをサブツリーに含めることができないという条件で、特定のノードに由来するサブツリーの最小重みを見つけることが必要になる場合があります。この問題は、グラフ理論、ツリーベースのアルゴリズム、ネットワーク最適化など、さまざまな分野やアプリケーションで発生します。サブツリーは、指定されたノードがサブツリーのルート ノードとして機能する、より大きなツリー構造のサブセットです。サブツリーには、ルート ノードのすべての子孫とそれらの接続エッジが含まれます。ノードの重みは、そのノードに割り当てられた特定の値を指し、その重要性、重要性、またはその他の関連するメトリックを表すことができます。この問題の目標は、ルート ノードから最大 D 単位離れたノードにサブツリーを制限しながら、サブツリー内のすべてのノード間の最小重みを見つけることです。次の記事では、サブツリーから最小重みをマイニングする複雑さについて詳しく説明します。

Vue と jsmind を使用してマインド マップのノード コピーおよびカット機能を実装するにはどうすればよいですか?マインド マップは、考えを整理し、思考ロジックを整理するのに役立つ一般的な思考ツールです。ノードのコピーとカット機能は、マインド マップでよく使用される操作であり、既存のノードをより便利に再利用し、思考整理の効率を向上させることができます。この記事では、Vue と jsmind の 2 つのツールを使用して、マインド マップのノードのコピーとカット機能を実装します。まず、Vue と jsmind をインストールし、

js でノードを削除するメソッドは次のとおりです: 1. RemoveChild() メソッドは、指定された子ノードを親ノードから削除するために使用されます。これには 2 つのパラメータが必要です。最初のパラメータは削除される子ノードで、2 番目のパラメータは次のとおりです。親ノード ノード; 2.parentNode.removeChild() メソッドは、親ノードを介して直接呼び出して子ノードを削除できます; 3.remove() メソッドは、親ノードを指定せずにノードを直接削除できます; 4. innerHTML 属性は、ノードのコンテンツを削除するために使用されます。

C++ にはコードの一部または期待値として定義されるマクロがあり、ユーザーが必要とするたびに再利用されます。フロイド・ウォルシャル アルゴリズムは、指定された重み付きグラフ内の頂点のすべてのペア間の最短経路を見つけるプロセスです。このアルゴリズムは動的プログラミング アプローチに従って、最小重みグラフを見つけます。図を通してフロイド・ウォルシャルアルゴリズムの意味を理解しましょう - 頂点 1 をソースとして、頂点 4 を目的地として取り、それらの間の最短パスを見つけます。ターゲット頂点 4 に接続できるパスが 2 つあることがわかりました。 1->4 – エッジの重みは 51->8->3->4 – エッジの重み (1+2+1)は4です。与えられたグラフ I では、2 つの頂点を接続する最小のエッジが表示されます。ここに頂点があります

この記事では主にjsで要素ノードを作成、削除、追加、置換する方法を紹介しますので、困っている方の参考になれば幸いです。

グラフの 2 つの中心間の指定されたパスが最短パスに準拠しているかどうかを確認するには、次のように信頼できる最短パスを使用して、指定されたパスに沿ったエッジ全体の重みを同じ中心の組み合わせ間の最短距離と比較することで計算できます。ダイクストラの計算またはフロイド・ウォーシャルの計算。特定のパス上のすべてのエッジの重みが最も制限された削除に一致する場合、それは最も単純なパスを表します。また、エッジの重み全体が最短距離よりも目立つ場合は、グラフ内の 2 つの中心間の距離が短いことを示します。使用される手法 ダイクストラのアルゴリズム 限界反転を伴うフロイド・ウォーシャル アルゴリズム コスト貪欲アルゴリズム ダイクストラの計算は、一般的なグラフ走査計算である可能性があります

OpenAI は、ロボットとロボットの対話の世界における結節点 (ただし重要な結節点) ではありますが、中心ではありません。 ChatGPT はプラグイン メカニズムを開始しました。これは非常にエキサイティングな開発です。全員が異口同音に「OSが誕生した」とコメントした。この発言は完全に間違っています。 OpenAI は、ロボットとロボットの対話の世界における結節点 (ただし重要な結節点) ではありますが、中心ではありません。私の心の中には、ロボットがロボットと会話する世界というイメージが常にありました。人々はロボットとチャットし、ロボットの友人を通じて人間がタスクを完了するのをロボットに手伝ってもらいます。 ChatGPT プラグインは世界を完璧に示します

n 個のノードがある場合、タスクはリンク リストの最後に n 番目のノードを出力することです。プログラムはリスト内のノードの順序を変更してはなりませんが、リンクされたリストの最後のノードから n 番目のノードのみを出力する必要があります。例 Input-:102030405060 N=3Output-:40 上記の例では、最初のノードから開始して count-n 個のノード、つまり 10,2030,40,50,60 まで移動するため、最後から 3 番目のノードは 40 になります。 。リスト全体を効率的に走査する代わりに、次のアプローチを使用できます。たとえば、ノード タイプの temp への一時ポインタを取得し、この一時ポインタをヘッド ポインタが指す最初のノードに設定し、カウンタをリスト内のノードに設定します。
