通过getNOdeName可以得到节点的名称,那怎么样才能改变这个名称?

解决方案 »

  1.   

    char FAR *WSAAPI getnodename(void);
      

  2.   

    使用com组建.html/xml论坛有关于着方面的.主要是分析网页的语法,可以得到他的接点.
    可以增加\删除\....操作
      

  3.   

    我得xml文件不是用于网页,而是自己建立的
      

  4.   

    不用与网页但还是xml文件啊.主要是分析源代码
      

  5.   

    <?xml="1.0" encoding="GB2321"><fan>
    <xx>xml</xx></fan>
    分析他的接点<fan>和<xx>
      

  6.   

    to:fanqing(火影忍者+20%)
    能说得具体一点么?怎么分析
    我得文件差不多如下:<?xml="1.0" encoding="GB2321">
    <root>
     <fan>
      <xx/>
      <yy/>
     </fan>
    </root>假如要改变fan节点得名称,如何实现
      

  7.   

    我们建立一个xml文件,内容如图所示:
     
    一,建立一个基于对话框的程序,工程名为xml;
    二, 初始化OLE.
    BOOL CXmlApp::InitInstance()
    {
    AfxOleInit();
    …….
    }三, 在对话框中增加一个按钮,ID为IDC_CREATE,我们在这个按钮的响应函数中生成一个xml文件.
    void CXmlDlg::OnCreate() 
    {
    MSXML2::IXMLDOMDocumentPtr pDoc; 
    MSXML2::IXMLDOMElementPtr  xmlRoot ;
    //创建DOMDocument对象
    HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
    if(!SUCCEEDED(hr)) 

    MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!"); 


    //根节点的名称为china
    pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot);
    pDoc->raw_appendChild(xmlRoot, NULL);

    MSXML2::IXMLDOMElementPtr  childNode ;
    pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
    childNode->Puttext("WuHan");//节点值
    childNode->setAttribute("population","8,000,000");//属性名,属性值
    childNode->setAttribute("area","10000");
    xmlRoot->appendChild(childNode);

    pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
    childNode->Puttext("ShangHai");
    childNode->setAttribute("population","12,000,000");
    childNode->setAttribute("area","12000");
    xmlRoot->appendChild(childNode);

    //保存到文件
    //如果不存在就建立,存在就覆盖
    pDoc->save("f:\\he.xml");
    }
    不要忘了#import "msxml4.dll" //引入类型库四, 再增加一个按钮,ID为IDC_GET,在这个按钮的响应函数中读取xml文件.
    void CXmlDlg::OnGet() 
    {
    //创建DOMDocument对象
    MSXML2::IXMLDOMDocumentPtr pDoc; 
    HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
    if(!SUCCEEDED(hr)) 

    MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!"); 

    //加载文件
    pDoc->load("f:\\he.xml");

    //在树中查找名为City的节点,"//"表示在任意一层查找
    MSXML2::IXMLDOMElementPtr  childNode ;
    childNode = (MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//City"));

    //得到节点类型
    MSXML2::DOMNodeType nodeType;
    childNode->get_nodeType(&nodeType);

    //节点名称
    BSTR var;
    CString name;
    childNode->get_nodeName(&var);
    name = (char*)(_bstr_t)var;

    //节点值
    VARIANT varVal;
    childNode->get_nodeTypedValue(&varVal);
    CString strValue = (char*)(_bstr_t)varVal;

    //节点属性,放在链表中
    MSXML2::IXMLDOMNamedNodeMapPtr pAttrs = NULL; 
    MSXML2::IXMLDOMNodePtr pAttrItem;
    childNode->get_attributes(&pAttrs);
    long nCount ;
    pAttrs->get_length(&nCount);
    for(int i = 0 ; i < nCount ; i++)
    {
    pAttrs->get_item(i,&pAttrItem);
    //我们可以通过函数get_nodeName,get_nodeTypedValue得到属性名和属性值
    //也可以直接得到
    CString strAttrName   = (char*)(_bstr_t)pAttrItem->nodeName;
    CString strAttrValue  = (char*)(_bstr_t)pAttrItem->nodeTypedValue;
    }
      

  8.   

    to: fanqing(火影忍者+20%)我晕,你写的这些代码,我都有,但是关键是要“更改”节点名。而不是得到节点名和属性值……
      

  9.   

    我不是说了吗我只做过分析html,xml没用过.没办法更改节点名