C#读取含有xmlns的XML文件
1 类似xmlns=""的文件
示例XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<WebSrvMessage xmlns="http://www.lenoval.com/">
<version>1.0</version>
<DataContent>
<DateTag>2010-5-17</DateTag>
</DataContent>
</WebSrvMessage>
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
//添加命名空间,前缀可随意命名
nsmgr.AddNamespace("lvl", "http://www.lenoval.com/");
//在路径前面使用前面定义的前缀
XmlNode datatag = doc.DocumentElement.SelectSingleNode("lvl:QryDataContent/lvl:DateTag", nsmgr);
2 类似xmlns:xxxx=""的文件
如:xmlns:lenoval="http://www.lenoval.com/">
可在上面的代码中添加命名空间:
//添加命名空间,前缀可随意命名
nsmgr.AddNamespace("lenoval", "http://www.lenoval.com/");
//在路径前面使用前面定义的前缀
XmlNode datatag = doc.DocumentElement.SelectSingleNode("lenoval:QryDataContent/lenoval:DateTag", nsmgr);
相关文档:
看结论请直接看下面
今天写生成xml的php。没有用什么XMLDOMNode之类的来生成,而是直接echo出xml的内容。
xml的内容中有一部分的数据是从db中循环取出的,问题就出在这。我发现全部取出数据时,对于生成的xml,simplexml_load_string返回false,即表明生成的xml是非法的。
debug一下,发现取出数据加以限制 limit 8 一下 ......
SQl Xml和C# Xml数据的一点操作总结
在此申明Xml是InfoSet数据不是字符串,所以在此强烈反对用string拼接xml。数据库可以存放xml类型数据,那么该数据的具体操作又如何了。
1.首先建立一张含有xml数据类型的表
CREATE TABLE [dbo].[TestXml](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Message] [xml] NULL ......
已知有一个XML文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
&nb ......