如何修改xml文件

如何修改xml文件,第1张

你选中的是什么?节点、文本、属性

要改的是什么?修改节点、属性、文本?

那我假设选中的是节点,要改属性值:

使用setAttribute()方法可改变已有属性值,或创建一个新属性。下面的代码向

元素添加了名为

“add\"

的新属性(值是

“a\"):

x=xmlDoc.getElementsByTagName(“field\")

x[0].setAttribute(“add\",“a\")

使用nodeValue

属性可更改属性节点的值:

x=xmlDoc.getElementsByTagName(“field”)[0].

什么是 FreeSWITCH ?

FreeSWITCH 是一个开源的电话交换平台,它具有很强的可伸缩性--从一个简单的软电话客户端到运营商级的软交换设备几乎无所不能。能原生地运行于Windows、 Max OS X、Linux、BSD 及 solaris 等诸多32/64位平台。可以用作一个简单的交换引擎、一个PBX,一个媒体网关或媒体支持IVR的服务器等。它支持SIP、H323、Skype、Google Talk等协议,并能很容易地与各种开源的PBX系统如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等通信。 FreeSWITCH 遵循RFC并支持很多高级的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一个SBC进行透明的SIP代理(proxy)以支持其它媒体如T.38 等。FreeSWITCH 支持宽带及窄带语音编码,电话会议桥可同时支持8、12、16、24、32及48kHZ的语音. 而在传统的电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃等业务在PSTN网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。

快速体验

FreeSWITCH 的功能确实非常丰富和强大,在进一步学习之前我们先来做一个完整的体验。FreeSWITCH 默认的配置是一个SOHO PBX(家用电话小交换机),那么我们本章的目标就是从0安装,实现分机互拨电话,测试各种功能,并通过添加一个SIP-PSTN网关拨打PSTN电话。这样,即使你没有任何使用经验,你也应该能顺利走完本章,从而建立一个直接的认识。在体验过程中,你会遇到一点稍微复杂的配置,如果不能完全理解,也不用担心,我们在后面会详细的介绍。当然,如果你是一个很有经验的 FreeSWITCH 用户,那么大可跳过本章。

安装FreeSWITCH基本系统

在本文写作时,最新的版本1.0.5pre10,但说不定当你读到时1.0.5正式版已经发布了。FreeSWITCH支持32位及64位的 Linux、 MacOSX、BSD、Solaris、Windows等众多平台。某些平台上有编译好的安装包,但本人强烈建议从源代码进行安装,因为 FreeSWITCH 更新非常快,而已编译好的版本通常都比较旧。你可以下载源码包,也可以直接从SVN仓库中取得最新的代码。与其它项目不同的是,其SVN主干 (trunk)代码通常比稳定的发布版更稳定。而且,当你需要技术支持时,开发人员也通常建议你先升级到SVN中最新的代码,再看是不是仍有问题。

Windows用户可以直接下载安装文件 (再提醒一下,版本比较旧代,如果从源代码安装的话,需要Visual Studio 2008)。安装完成执行 c:\freeswitch\freeswitch.exe 便可启动,其配置文件都在c:\freeswitch\conf\。

以下假定你使用 Linux 平台,并假定你有 Linux 的基本知识。如何从头安装 Linux 超出了本书的范围,而且,你也可以很容易的从网上找到这些资料。一般来说,任何发行套件都是可以的,但是,有些发行套件的内核、文件系统、编译环境,LibC 版本会有一些问题。所以,如果你在遇到问题后想获得社区支持,最好选择一种大家都熟悉的发行套件。FreeSWITCH 开发者使用的平台是 CentOS 5.2/5.3(CentOS 5.4 上会有一些问题,并不总是版本越高越好),社区中也有许多人在使用 Ubuntu 和 Debian,如果你想用于生产环境,建议使用 LTS(Long Term Support) 的版本,即 Ubuntu8.04/10.04 或 Debian Stable。在安装之前,我们需要先准备一些环境(FreeSWITCH 可以以普通用户权限运行,但为了简单起见,以下所有 *** 作均用 root 执行):

CentOS:

yum install -y subversion autoconf automake libtool gcc-c++ ncurses-devel make

Ubuntu:

apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev

以下三种安装方式任选其一,默认安装位置在/usr/local/freeswitch。安装过程中会下载源代码目录,请保留,以便以后升级及安装配置其它组件。

用VC吧,下面有一个例子,你参照下:

void CreateXml()

{

    CoInitialize(NULL)

    // 创建文档

    MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL

    //创建DOMDocument对象

    HRESULT hr = pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument))

    if (!SUCCEEDED(hr))

    {

        return

    }

    // Create the Processing Instruction

    MSXML2::IXMLDOMProcessingInstructionPtr pXMLProc = NULL

    pXMLProc = pXMLDoc->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")

    

    _variant_t vNullVal

    vNullVal.vt = VT_NULL

    pXMLDoc->insertBefore(pXMLProc, vNullVal)

    // 创建根结点

    _variant_t varNodeType((short)MSXML2::NODE_ELEMENT)

    MSXML2::IXMLDOMNodePtr pXMLNodeRoot= NULL 

    pXMLNodeRoot = pXMLDoc->createNode(varNodeType, _T("Cases"), _T(""))

    // 添加根结点

    pXMLDoc->appendChild(pXMLNodeRoot)

    // 创建并添加下级结点

    MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL 

    pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case")))

    // 创建下级元素结点

    MSXML2::IXMLDOMElementPtr pXMLEle = NULL

    pXMLEle = pXMLDoc->createElement(_T("CopyFile"))

    // 创建并设置下级结点属性

    MSXML2::IXMLDOMAttributePtr pXMLAttr = NULL

    pXMLAttr = pXMLDoc->createAttribute(_T("src"))

    pXMLAttr->nodeTypedValue = "C:\\test.txt"

    pXMLEle->attributes->setNamedItem(pXMLAttr)

    pXMLAttr = pXMLDoc->createAttribute(_T("dest"))

    pXMLAttr->nodeTypedValue = "D:\\Test.txt"

    pXMLEle->attributes->setNamedItem(pXMLAttr)

    // 添加元素结点

    pXMLNodeNode->appendChild( pXMLEle)

    MSXML2::IXMLDOMElementPtr pXMLEle1 = NULL

    pXMLEle1 = pXMLDoc->createElement(_T("DelFile"))

    pXMLEle1->appendChild(pXMLDoc->createTextNode("C:\\test.txt"))

    // 添加元素结点

    pXMLNodeNode->appendChild( pXMLEle1)

  

    // 保存文档

    pXMLDoc->save(_T("d:\\Test.xml"))

}

 

效果如下:

<?xml version="1.0" encoding="UTF-8" ?> 

<Cases>

    <Case>

        <CopyFile src="C:\test.txt" dest="D:\Test.txt" /> 

        <DelFile>C:\test.txt</DelFile> 

    </Case>

</Cases>

为了能够让MFC认识MSXML2,我们需要引入相应的dll,代码如下

#import "msxml4.dll"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7957739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存