惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
月光博客
月光博客
V
Visual Studio Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
C
Check Point Blog
腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
SecWiki News
SecWiki News
博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
F
Full Disclosure
The Cloudflare Blog
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
AI
AI
N
News and Events Feed by Topic
T
Tor Project blog
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog

博客园 - 城

使用WebClient进行上传文件 序列化成字符串 - 城 - 博客园 东北话 c# MD5加密 SubVersion的多库权限配置 Visual Studio .NET has detected Web server is not running ASP.NET 1.1(vs.2003) Unable to generate a temporary class (result=1).error CS2001: Source file '...... VS.net 2005快捷键一览表 Tsql123 Windows Service OnCustomCommand 的問題 vba控件常规使用 vba 中 加载DLL错误的解决方法 无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域。 安装程序工具 (Installutil.exe) 文件上传 WSE2.0加密Web Service soap验证 windows2003reg 在1433 以外的任何端口上连接到SQL Server
XML简单操作
· 2006-11-06 · via 博客园 - 城

<ico name="bookstroe" ico="ico1" />   
 //元素ico有两个属性分别是name,ico,它们的值分别是:bookstroe,ico1
----
<ico>
  <name>ico2</name>
  <address>ico/ico2.ico</address>
</ico>

//元素ico有2个子元素分别是name,address,它们的内容分别是ico2,ico/ico2.ico

第一种方法

    XmlDocument xmldoc ;
    XmlNode xmlnode ;
    XmlElement xmlelem ;
    XmlElement xmlelem1 ;
    XmlText xmltext ;
     xmldoc = new XmlDocument ( ) ;
     //加入XML的声明段落
     xmlnode = xmldoc.CreateNode ( XmlNodeType.XmlDeclaration , "" , "" ) ;
     xmldoc.AppendChild ( xmlnode ) ;
     //加入一个根元素
     xmlelem = xmldoc.CreateElement ( "" , "ROOT" , "" ) ;
     xmltext = xmldoc.CreateTextNode ( "Root Text" ) ;
      //加属性
     XmlAttribute xmlattribute = xmldoc.CreateAttribute("number");
     xmlattribute.Value = "1";
     xmlelem.Attributes.Append(xmlattribute);
     xmlelem.AppendChild ( xmltext ) ;
     xmldoc.AppendChild ( xmlelem ) ;
     //加入另外一个元素
      xmlelem1 = xmldoc.CreateElement ( "" , "Element1" , "" ) ;
     xmltext = xmldoc.CreateTextNode ( "Element1 text " ) ;
     xmlelem1.AppendChild ( xmltext ) ;
     xmldoc.ChildNodes.Item(1).AppendChild ( xmlelem1 ) ;
     //保存创建好的XML文档
      xmldoc.Save ( "c:\\localinfo.xml" ) ; 

第二种方法..

  XmlDocument doc = new XmlDocument ( ) ;
      doc.LoadXml ( 
"<Employees> " +
                  "<NO1>" +
                  "<Name>Ma Jin Hu</Name>" +
                  "<ZIP> 239000 </ZIP>" +
                  "<Address>Feng Huang Street</Address>" +
                  "<City>Chu Zhou City</City>" +
                  "<State> ANHUI </State>" +
                  "</NO1>" +
                  "<NO2>" +
                  "<Name>Wang Tian</Name>" +
                  "<ZIP> 239000 </ZIP>" +
                  "<Address>Lang Ya Street</Address>" +
                  "<City>He Fei City</City>" +
                  "<State> ANHUI </State>" +
                  "</NO2>" +
                  "<NO3>" +
                  "<Name>Zou Wen Biao</Name>" +
                  "<ZIP> 100000 </ZIP>" +
                  "<Address>Sai Di Street</Address>" +
                  "<City>Bei Jin City</City>" +
                  "<State>Bei Jin</State>" +
                  "</NO3>" +
                  "</Employees>" ) ;
     
      doc.Save ( "localinfo.xml" ) ;

读XML文档
private XmlDocument InitXmlDocument()
  {
   try
   {
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(docName);
    return xmldoc;
   }
   catch(Exception err)
   {
    Console.Write(err.Message);
    //MessageBox.Show(err.ToString(),"VisIONLocalInformation",MessageBoxButtons.OK,MessageBoxIcon.Error);
    return null;
   }
   
  }

 public ArrayList LoadXmlDoc()
  {
   try
   {
    xmlDoc =  InitXmlDocument();
    if(xmlDoc == null)
    {
     return null;
    }
    XmlNodeList  xmlnodelist = xmlDoc.SelectSingleNode("LocalInfo/RecentFile").ChildNodes;
   recentfilecollection.Clear();
    foreach(XmlNode xn in xmlnodelist)
    {
     XmlElement xe = (XmlElement)xn;
     XmlNodeList xnl = xe.ChildNodes;
     RecentFile recentfile = new RecentFile();
     recentfile.FileName = xnl[0].InnerText;
     recentfile.FileOpenType = xnl[1].InnerText;
     recentfile.FileOpenDate = xnl[2].InnerText ;
    
     recentfilecollection.Add(recentfile);
    }
    return recentfilecollection;
   }
   catch(Exception err)
   {
    Console.Write(err.Message);
    //MessageBox.Show(err.Message);
    return null;
   }
  
  }

XML节点存在namespace(xmlns)的时候xpath不能正常工作

xml文件如下:

 1 <MODULE>
 2 <MESSAGE Type="Reply" Reference="Ref3">
 3 <PARAMETER Name="PublicReply" Type="XMLString">
 4 <MyAPI_RESULT xmlns="MyAPI">
 5 <ANSWER ID="801">
 6 <RECORDS>
 7 <ROW ForID="123456" data1="1" data2="2" data3="3"/>
 8 </RECORDS>
 9 </ANSWER>
10 </MyAPI_RESULT>
11 </PARAMETER>
12 </MESSAGE>
13 </MODULE>

如果按往常查询的话:

 XmlDocument doc = new XmlDocument();
doc.LoadXml(strXMLData);
XmlNode root 
= doc.SelectSingleNode(".//RECORDS");

root是null。

解决办法:

1 XmlDocument doc = new XmlDocument();
2 doc.LoadXml(strXMLData);
3 XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
4 manager.AddNamespace("MyAPI""MyAPI");
5 XmlNode root = doc.SelectSingleNode("//MyAPI:RECORDS", manager);

加上XmlNamespaceMananger就可以正常了。