GetElementById is only valid for elements with an "id" attribute, to get other elements, try something likeXmlNodeList nodeList = doc.GetElementsByTagName("Person","http://p.foo.com/");
if (nodeList.Count > 0)
     Console.WriteLine( nodeList[0].OuterXml );

解决方案 »

  1.   

    呵呵,谢谢,偶晓得这个容易忽视的地方。不过问题似乎不在此处,如果不含名称空间,如下:
    <!DOCTYPE root [
      <!ELEMENT root (Persons*)>
      <!ELEMENT Persons (Customer*,Person*)> 
      <!ELEMENT Person EMPTY>
      <!ELEMENT Customer EMPTY>
      <!ELEMENT Team EMPTY>
      <!ATTLIST Person SSN ID #REQUIRED>
      <!ATTLIST Customer id ID #REQUIRED >
    ]>
    <root>
      <Persons>
         <Customer id='A110'/>
         <Person SSN='A111'/>
      </Persons>
    </root>则都可以得到正确的结果。
    到底是为什么呢??