// An highlighted block
using System.Windows.Forms;
using System.Xml;
// An highlighted block
//获取根节点对象
XmlDocument xmlDoc = new XmlDocument();
//创建类型声明节点
XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
xmlDoc.AppendChild(node);
//创建根节点
XmlNode root = xmlDoc.CreateElement("Users");
xmlDoc.AppendChild(root);
XmlNode node1 = xmlDoc.CreateNode(XmlNodeType.Element,"User1",null);
CreateNode(xmlDoc, node1, "name", "xuwei");
CreateNode(xmlDoc, node1, "sex", "male");
CreateNode(xmlDoc, node1, "age", "25");
root.AppendChild(node1);
XmlNode node2 = xmlDoc.CreateNode(XmlNodeType.Element,"User2",null);
CreateNode(xmlDoc,node2,"name","smm");
CreateNode(xmlDoc,node2,"sex","female");
CreateNode(xmlDoc,node2,"age","21");
root.AppendChild(node2);
xmlDoc.Save("c://data2.xml");
public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)
{
XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);
node.InnerText = value;
parentNode.AppendChild(node);
}
读取属性的值
// An highlighted block
//获取xml的路径
<pdfreport>
<page>
<pdfcontentstring>
<showtextaligned fieldname="建築主氏名" location="160,705" fontsize="10"/>
<showtextaligned fieldname="地名地番" location="160,660" fontsize="10"/>
<showtextaligned fieldname="延べ面積" location="160,618" fontsize="10"/>
<showtextaligned fieldname="主要用途" location="160,570" fontsize="10"/>
<showtextaligned fieldname="工事種別" location="160,525" fontsize="10"/>
<showtextaligned fieldname="階数地上" location="250,480" fontsize="10"/>
<showtextaligned fieldname="階数地下" location="450,480" fontsize="10"/>
<showtextaligned fieldname="構造" location="160, 438" fontsize="10"/>
<showtextaligned fieldname="確認年月日" location="160, 370" fontsize="10" datetimeformat="gyyyy年MM月dd日" culture="ja-JP"/>
<showtextaligned fieldname="確認番号" location="350, 370" fontsize="10"/>
<showtextaligned fieldname="検査年月日" location="160, 310" fontsize="10" datetimeformat="gyyyy年MM月dd日" culture="ja-JP"/>
<showtextaligned fieldname="検査番号" location="160, 295" fontsize="10" />
<showtextaligned fieldname="備考" location="160, 270" fontsize="10" />
</pdfcontentstring>
</page>
</pdfreport>
要求获取fieldname属性的值
// An highlighted block
//获取xml的路径
string pdfXmlPath = Path.Combine(System.Windows.Forms.Application.StartupPath, "記載事項建築PdfWriteInfo.xml");
//将XML文件加载进来
XmlDocument doc = new XmlDocument();
doc.Load(pdfXmlPath);
XmlNode xn = doc.SelectSingleNode("pdfreport");
XmlNode xn2 = xn.SelectSingleNode("page");
XmlNode xn3 = xn2.SelectSingleNode("pdfcontentstring");
XmlNodeList list = xn3.ChildNodes;//获取到pdfcontentstring节点下的所有子节点
List<string> info = new List<string>();
foreach (XmlNode item in list)
{
XmlElement xe = (XmlElement)item;
info.Add(xe.GetAttribute("fieldname").ToString());
}
读取内容
// An highlighted block
<PluginSetting>
<General>
<SerchSetDB>Data Source=192.168.66.107;Initial Catalog=IckwPasCALWebExtEnv;Persist Security Info=True;User ID=sa;Password=123456</SerchSetDB>
<!--■【デバック用】クライアントへのログ出力(PW_Report.log)・・・「Ture」でログを出力する、「False」でログを出力しない-->
<OutputLog>True</OutputLog>
</General>
<Setting>
<ThemeName>埋蔵文化財</ThemeName>
<UserCode>wh</UserCode>
<UserCode1>003778</UserCode1>
<GroupCode>1360</GroupCode>
</Setting>
<GengoSetting>
<和暦変換フィールド>CH_Uketukebi</和暦変換フィールド>
<和暦変換フィールド>CH_Tochisyutokubi</和暦変換フィールド>
<和暦変換フィールド>CH_TodokedeSintatubi</和暦変換フィールド>
<和暦変換フィールド>CH_Koujikaisi</和暦変換フィールド>
<和暦変換フィールド>CH_KoujiSyuryo</和暦変換フィールド>
<和暦変換フィールド>CH_TyakusyuYoteiJiki</和暦変換フィールド>
<和暦変換フィールド>CH_SyuryoYoteiJiki</和暦変換フィールド>
<和暦変換フィールド>CH_ChosaHoukokubi</和暦変換フィールド>
<和暦変換フィールド>CH_Hakkenbi</和暦変換フィールド>
<和暦変換フィールド>CH_CKikanSyuryo</和暦変換フィールド>
<和暦変換フィールド>CH_ChosaStart</和暦変換フィールド>
<和暦変換フィールド>CH_ChosaEnd</和暦変換フィールド>
<!--台帳画面の元号コンボボックス-->
<GENGOULIST>明治</GENGOULIST>
<GENGOULIST>大正</GENGOULIST>
<GENGOULIST>昭和</GENGOULIST>
<GENGOULIST>平成</GENGOULIST>
<GENGOULIST>新号</GENGOULIST>
<!--埋蔵文化財プラグイン独自の和暦変換をするフラグ。デフォルトfalseの場合、.net標準処理。-->
<USEGENGOUDATE>true</USEGENGOUDATE>
<!--元号の切り替え日-->
<GENGOUDATE>1868-01-01 00:00:00</GENGOUDATE>
<GENGOUDATE>1912-07-30 00:00:00</GENGOUDATE>
<GENGOUDATE>1926-12-25 00:00:00</GENGOUDATE>
<GENGOUDATE>1989-01-08 00:00:00</GENGOUDATE>
<GENGOUDATE>2019-05-01 00:00:00</GENGOUDATE>
<!--和暦変換のフォーマットパラメータ。デフォルトはPW本体と同じggyy年M月d日-->
<DateTimeFormat>ggy年MM月dd日</DateTimeFormat>
</GengoSetting>
</PluginSetting>
将获取到的内容显示到对应的文本框上
// An highlighted block
Dictionary<string, List<string>> hashMap = new Dictionary<string, List<string>>();
label1.Text = "ThemeName";
label2.Text = "UserCode";
label3.Text = "UserCode1";
label4.Text = "GroupCode";
//将XML文件加载进来
XmlDocument doc = new XmlDocument();
doc.Load("C://Users//XY//Desktop//PW_Report.dll.config");
//获取根节点
XmlElement xmlRoot = doc.DocumentElement;
//、获取根结点下的子节点
foreach (XmlElement childRoot in xmlRoot)
{
if (childRoot.Name == "Setting")
{
foreach(XmlNode node in childRoot.ChildNodes){
if (node.Name == "ThemeName"&& node.InnerText!=null)
{
textBox1.Text = node.InnerText;
string name = node.InnerText;
Console.Write(name);
}
if (node.Name == "UserCode" && node.InnerText != null)
{
textBox2.Text = node.InnerText;
}
if (node.Name == "UserCode1" && node.InnerText !=null)
{
textBox3.Text = node.InnerText;
}
if (node.Name == "GroupCode" && node.InnerText != null)
{
textBox4.Text = node.InnerText;
}
}
}
if (childRoot.Name == "GengoSetting")
{
List<string> info = new List<string>();
List<string> info1= new List<string>();
List<string> info2= new List<string>();
List<string> info3= new List<string>();
List<string> info4= new List<string>();
XmlNodeList list = childRoot.SelectNodes("和暦変換フィールド");
XmlNodeList list1 = childRoot.SelectNodes("ENGOULIST");
XmlNodeList list2 = childRoot.SelectNodes("USEGENGOUDATE");
XmlNodeList list3 = childRoot.SelectNodes("GENGOUDATE");
XmlNodeList list4 = childRoot.SelectNodes("DateTimeFormat");
info= getdata(list);
info1= getdata(list1);
info2= getdata(list2);
info3= getdata(list3);
info4= getdata(list4);
hashMap.Add("和暦変換フィールド", info);
hashMap.Add("ENGOULIST", info1);
hashMap.Add("USEGENGOUDATE", info2);
hashMap.Add("GENGOUDATE", info3);
hashMap.Add("DateTimeFormat", info4);
string count = getstring(hashMap["和暦変換フィールド"]);
string count1 = getstring(hashMap["ENGOULIST"]);
string count2 = getstring(hashMap["USEGENGOUDATE"]);
string count3 = getstring(hashMap["GENGOUDATE"]);
string count4 = getstring(hashMap["DateTimeFormat"]);
textBox5.Text = count;
textBox6.Text = count1;
textBox7.Text = count2;
textBox8.Text = count3;
textBox9.Text = count4;
}
}
}
//将节点名相同的子节点存入list中
public List<string> getdata(XmlNodeList list)
{
List<string> info = new List<string>();
foreach (XmlNode item in list)
{
info.Add(item.InnerText);
}
return info;
}
//遍历取出list中存放的值
public string getstring(List<string> list)
{
string count = "";
for (int i = 0; i < list.Count - 1; i++)
{
count = count + " " + " "
+ list[i];
}