XmlElement bbshit = objDoc.CreateElement("bbs:hit");这样,创建的xml文件中只有hit,冒号及前面的部分不见了?
<hit>1</hit> 正确的应该是<bbs:hit>1</bbs:hit> ,要如何作?

解决方案 »

  1.   

    用一个stream类来操作文本的写入
      

  2.   

    用XmlDocument 可以么?
    我看msdn上说的是可以,但是自己试了一下不行
    XmlElement bbshit = objDoc.CreateElement("bbs:hit",""); msdn上是这样说的
    ConfigXmlDocument.CreateElement (String, String) 
      

  3.   

    空namespace的元素不能设置前缀。
                XmlDocument doc = new XmlDocument();
                doc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
                XmlElement ele = doc.CreateElement("bbs","hit","urn:bbs");
                ele.InnerText = "100";
                doc.DocumentElement.AppendChild(ele);
                doc.Save("test1.xml");
    保存后test1.xml内容:<?xml version="1.0" encoding="utf-8"?>
    <root>
      <bbs:hit xmlns:bbs="urn:bbs">100</bbs:hit>
    </root>
      

  4.   

    楼主你那样写出一个xml,解析也会报错的。
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?><bbs:hit>99</bbs:hit>");
    XmlNode root = doc.DocumentElement;
    System.Console.WriteLine(root.InnerText);
    红色部分会报错:“bbs”是未声明的命名空间。 行 1,位置 40。
      

  5.   

    要得到bbs这个namespace,然后就可以加进去了
      

  6.   

    可是我不想要xmlns:bbs="urn:bbs" 这一段,加上这一句我知道能显示出来,可以我现在不想要这一段
      

  7.   

    不写上命名空间,又要加上前缀,系统提供的xml类库应该是不支持的。只有当纯文本自己负责解析了。