首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

使用 C# 操作 XML 處理指令(PI):讀取、修改、新增與刪除完整實作

     編輯:關於C語言

什麼是處理指令?

處理指令(Processing Instruction, PI)格式:<?target value?>。用於傳遞特定應用程式資訊,不屬於文件資料一部分,解析器直接透傳給客戶端應用。

  • XML 宣告:特殊 PI,value 格式預定義(version="1.0" encoding="utf-8")。
  • 樣式表 PI:<?xml-stylesheet href="style.css" type="text/css"?>,value 為偽屬性字串。
  • InfoPath PI:<?mso-application progid="InfoPath.Document"?>、<?mso-infoPathSolution ...?> 指定方案模板位置。

C# 操作 PI 核心 API

操作方法
選取 PI 節點XPath: /processing-instruction('target')
轉型存取值(XmlProcessingInstruction)node).Value
修改值pi.Value = "new value"
建立新 PIdoc.CreateProcessingInstruction("target", "value")
插入文件doc.InsertBefore/After(pi, refNode)
刪除 PIdoc.RemoveChild(node)(無需轉型)

完整程式碼範例

string path = "config.xml";
XmlDocument doc = new XmlDocument { XmlResolver = null };
doc.Load(path);

// 顯示原始內容
Console.WriteLine(doc.InnerXml.Replace("><", ">\r\n<"));

// 讀取特定 PI
XmlProcessingInstruction pi = (XmlProcessingInstruction)
    doc.SelectSingleNode("/processing-instruction('mso-infoPathSolution')");
Console.WriteLine("原值:" + pi.Value);

// 修改
pi.Value = "updated value";
Console.WriteLine("新值:" + pi.Value);

// 新增 PI
XmlProcessingInstruction piNew = doc.CreateProcessingInstruction("new-pi", "my new processing instruction");
doc.InsertBefore(piNew, doc.ChildNodes[3]);

// 刪除 PI
XmlNode ndDel = doc.SelectSingleNode("/processing-instruction('mso-application')");
doc.RemoveChild(ndDel);

// 顯示修改後
Console.WriteLine(doc.InnerXml.Replace("><", ">\r\n<"));
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved