用JS可以做到function getStatus(url) { var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp.open("GET",url,false); xml.send(); var xmldoc = xmlhttp.responseXML; var status = xmldoc.documentElement.selectSingleNode("//Status"); //alert(status.text); return status.text } ---------------- 调用 status = getStatus("http://ip/update.jsp?参数1=$Item1&参数2=$Item2");
{
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("GET",url,false);
xml.send();
var xmldoc = xmlhttp.responseXML;
var status = xmldoc.documentElement.selectSingleNode("//Status");
//alert(status.text);
return status.text
}
----------------
调用
status = getStatus("http://ip/update.jsp?参数1=$Item1&参数2=$Item2");
其实用xmlhttp是最好的选择了,它可以实现页面无刷新就可以获取服务端的信息!
而且xmlhttp用起来也比较方便三、XMLHTTP的使用 顾名思义,XMLHTTP是个传送XML格式数据的超文本传输协议。 实际上,XMLHTTP的数据传输过程更为灵活一些:
它上传的指令可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。还可以是URL的参数。
它下达的结果可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。
详情可参阅文末链接。 客户端调用XMLHTTP的过程很简单,只有5个步骤:
1、创建XMLHTTP对象
2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。
客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。
3、发送指令。
4、等待并接收服务端返回的处理结果。
5、释放XMLHTTP对象 XMLHTTP方法:
Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword
bstrMethod:数据传送方式,即GET或POST。
bstrUrl:服务网页的URL。
varAsync:是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。
应用中一般将其置为False,即异步执行。
bstrUser:用户名,可省略。
bstrPassword:用户口令,可省略。 Send varBody
varBody:指令集。可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。也可以省略,让指令通过Open方法的URL参数代入。
setRequestHeader bstrHeader, bstrValue
bstrHeader:HTTP 头(header)
bstrValue:HTTP 头(header)的值
如果Open方法定义为POST,可以定义表单方式上传:
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XMLHTTP属性:
onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
responseBody:结果返回为无符号整数数组。
responseStream:结果返回为IStream流。
responseText :结果返回为字符串。
responseXML:结果返回为XML格式数据。 希望对你有所帮助
utf8_decode -- 将用 UTF-8 方式编码的 ISO-8859-1 字符串转换成单字节的 ISO-8859-1 字符串。
utf8_encode -- 将 ISO-8859-1 编码的字符串转换为 UTF-8 编码
xml_error_string -- 获取 XML 解析器的错误字符串
xml_get_current_byte_index -- 获取 XML 解析器的当前字节索引(current byte index)。
xml_get_current_column_number -- 获取 XML 解析器的当前列号
xml_get_current_line_number -- 获取 XML 解析器的当前行号
xml_get_error_code -- 获取 XML 解析器错误代码
xml_parse_into_struct -- 将 XML 数据解析到数组中
xml_parse -- 开始解析一个 XML 文档
xml_parser_create_ns -- 生成一个支持命名空间的 XML 解析器
xml_parser_create -- 建立一个 XML 解析器
xml_parser_free -- 释放指定的 XML 解析器
xml_parser_get_option -- 从 XML 解析器获取选项设置信息
xml_parser_set_option -- 为指定 XML 解析进行选项设置
xml_set_character_data_handler -- 建立字符数据处理器
xml_set_default_handler -- 建立默认处理器
xml_set_element_handler -- 建立起始和终止元素处理器
xml_set_end_namespace_decl_handler -- 建立终止命名空间声明处理器
xml_set_external_entity_ref_handler -- 建立外部实体指向处理器
xml_set_notation_decl_handler -- 建立注释声明处理器
xml_set_object -- 在对象中使用 XML 解析器
xml_set_processing_instruction_handler -- 建立处理指令(PI)处理器
xml_set_start_namespace_decl_handler -- 建立起始命名空间声明处理器
xml_set_unparsed_entity_decl_handler -- 建立未解析实体定义声明处理器 谁说没有的
看过手册没???
根据你的xml文件来写的
function GetData()
{
var oXMLDoc = new ActiveXObject('MSXML');
sURL = "http://ip/update.jsp?参数1=$Item1&参数2=$Item2";
oXMLDoc.url = sURL;
var oRoot =oXMLDoc.root;
if(oRoot.children != null){
oItem = oRoot.children;
nResult = oItem.item(0).text;
}
}
<?php
$file="test.xml";// XML文件 // 解析XML文件的函数
function xml_parse_from_file($parser, $file) {
if(!file_exists($file))
{
die("Can't find file \"$file\".");
}
if(!($fp = @fopen($file, "r"))) {
die("Can't open file \"$file\".");
}
while($data = fread($fp, 4096))
{
if(!xml_parse($parser, $data, feof($fp)))
{
return(false);
}
}
fclose($fp);
return(true);
}
function start_element($parser, $name, $attrs){
} function stop_element($parser, $name){
} function char_data($parser, $data){
} // 产生解析器的实例
$parser = xml_parser_create(); // 设置处理函数
xml_set_element_handler($parser, "start_element", "stop_element");
xml_set_character_data_handler($parser, "char_data");
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); // 解析文件
$ret = xml_parse_from_file($parser, $file);
if(!$ret){
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
echo($ret[0]);
// 释放解析器
xml_parser_free($parser);
?>不知道中间三个函数该怎么写:
function start_element($parser, $name, $attrs){
} function stop_element($parser, $name){
} function char_data($parser, $data){
}
我希望能得到类似这样的一个完整的示例代码
<?php
$file = "test.xml";
$depth = array();/*
function startElement($parser, $name, $attrs)
{
global $depth;
/*for ($i = 0; $i < $depth[$parser]; $i++) {
print " ";
}
print "$name\n";*/
$depth[$parser]++;
}function endElement($parser, $name)
{
global $depth;
print "$name\n";
$depth[$parser]--;
}
*/
function char_data($parser, $data){
echo($data);
} $xml_parser = xml_parser_create();
//xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "char_data");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>
上面程序返回结果为1或者-1;
如果将注释掉的行包括进去返回形式为:cancel status 1 status cancel