none
XmlDocument里的GetElementById方法怎么用啊? RRS feed

答案

  • Hi 米斯瑞,

      你可以看这个帖子关于如何使用XmlDocument里的GetElementById方法:

    http://social.msdn.microsoft.com/Forums/zh-CN/xmlwebserviceszhchs/thread/38774eab-44ee-4dc1-9fe8-6ecbd3f8cffa/

      不过由于NET 的DTD的问题,强烈建议你用GetElementsByTagName方法去实现:

      如果想要获得其他节点:
    XmlNodeList   nodeList   =   doc.GetElementsByTagName( "Person ", "http://p.foo.com/ ");
    if   (nodeList.Count   >    0)
                       Console.WriteLine(   nodeList[0].OuterXml   ); 
     

    或者:

           XmlNodeList   nodeList   =   doc.GetElementsByTagName( "Person ", "http://p.foo.com/ ");
           if   (nodeList.Count   >    0   )   {
                 for   (int   i   =   0;   i    <   nodeList.Count;   i++)   {
                          Console.WriteLine(nodeList[i].OuterXml);
                 }
           }


    orichisonic http://blog.csdn.net/orichisonic If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".


    2012年2月17日 3:32
  • 用它根据ID获取元素好像不行哦,是不是要加上些什么?请教各位,谢谢。。。

    参考下面的例子,GetElementById,应该是指:

    <!DOCTYPE root [
      <!ELEMENT root ANY>
      <!ELEMENT Person ANY>
      <!ELEMENT Customer EMPTY>
      <!ELEMENT Team EMPTY>
      <!ATTLIST Person SSN ID #REQUIRED>
      <!ATTLIST Customer id IDREF #REQUIRED >
      <!ATTLIST Team members IDREFS #REQUIRED>
    ]>
    <root>
      <Person SSN='A111' Name='Fred'/>
      <Person SSN='A111'/>
      <Person SSN='A222' Name='Tom'/>
      <Customer id='A111'/>
      <Customer id='A222334444'/>
      <Team members='A222334444 A333445555'/>
    </root>
    
    namespace A
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("XMLFile3.xml");
                XmlElement ele = doc.GetElementById("A111");
                Console.WriteLine(ele.OuterXml);
            }
        }
    }


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 米斯瑞 2012年2月18日 13:44
    2012年2月18日 7:06

全部回复

  • Hi 米斯瑞,

      你可以看这个帖子关于如何使用XmlDocument里的GetElementById方法:

    http://social.msdn.microsoft.com/Forums/zh-CN/xmlwebserviceszhchs/thread/38774eab-44ee-4dc1-9fe8-6ecbd3f8cffa/

      不过由于NET 的DTD的问题,强烈建议你用GetElementsByTagName方法去实现:

      如果想要获得其他节点:
    XmlNodeList   nodeList   =   doc.GetElementsByTagName( "Person ", "http://p.foo.com/ ");
    if   (nodeList.Count   >    0)
                       Console.WriteLine(   nodeList[0].OuterXml   ); 
     

    或者:

           XmlNodeList   nodeList   =   doc.GetElementsByTagName( "Person ", "http://p.foo.com/ ");
           if   (nodeList.Count   >    0   )   {
                 for   (int   i   =   0;   i    <   nodeList.Count;   i++)   {
                          Console.WriteLine(nodeList[i].OuterXml);
                 }
           }


    orichisonic http://blog.csdn.net/orichisonic If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".


    2012年2月17日 3:32
  • 用它根据ID获取元素好像不行哦,是不是要加上些什么?请教各位,谢谢。。。

    参考下面的例子,GetElementById,应该是指:

    <!DOCTYPE root [
      <!ELEMENT root ANY>
      <!ELEMENT Person ANY>
      <!ELEMENT Customer EMPTY>
      <!ELEMENT Team EMPTY>
      <!ATTLIST Person SSN ID #REQUIRED>
      <!ATTLIST Customer id IDREF #REQUIRED >
      <!ATTLIST Team members IDREFS #REQUIRED>
    ]>
    <root>
      <Person SSN='A111' Name='Fred'/>
      <Person SSN='A111'/>
      <Person SSN='A222' Name='Tom'/>
      <Customer id='A111'/>
      <Customer id='A222334444'/>
      <Team members='A222334444 A333445555'/>
    </root>
    
    namespace A
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("XMLFile3.xml");
                XmlElement ele = doc.GetElementById("A111");
                Console.WriteLine(ele.OuterXml);
            }
        }
    }


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已标记为答案 米斯瑞 2012年2月18日 13:44
    2012年2月18日 7:06