要改的是什么?修改节点、属性、文本?
那我假设选中的是节点,要改属性值:
使用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"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)