请问如何用asp或者vb读取xml 文件中各个节点的数据我想把每一组数据读出来后放到数组中

请问如何用asp或者vb读取xml 文件中各个节点的数据我想把每一组数据读出来后放到数组中,第1张

ASP 生成XML文件

<%

responseContentType="text/xml"

responseWrite("<xml version='10' encoding='ISO-8859-1'>")

responseWrite("<testdblist>")

responseWrite(" <database>")

responseWrite("<name>mktdb</name>")

responseWrite("。。。")

。。。。。。。。。。。。

。。。。。。。。。。。。

responseWrite(" </database>")

responseWrite("</<testdblist>")

我也很菜 望有用

%>

如果是 比较正式的应用,那就用dom4j,jdom之类的工具。

如果只是简单的XML格式的String的话,那就用正则表达式吧。

不过正则表达式学起来也不容易。

最浅显的办法就是直接 *** 作字符串

如:

String str = "…<xxx>……</xxx>………";

int startIndex = strindexOf("<xxx>")+"<xxx>"length();

int endIndex = strindexOf("</xxx>");

内容 = strsubString(startIndex"");

public static List<string> GetDataFromXml(string xmlpath)

{

    XmlDocument doc = new XmlDocument();

    docLoad(xmlpath);

    XmlNodeList nodes = docSelectNodes("descendant::item");

    List<string> values = new List<string>();

    foreach (XmlNode node in nodes)

    {

        valuesAdd(nodeInnerText);

    }

    return values;

}<xml version="10" encoding="utf-8" >

<root>

  <item>ssss</item>

  <item>yyyy</item>

  <item>zzzz</item>

</root>

常用 如下 几行

header("content type:text/; charset=utf "); //指定PHP使用UTF 编码 $xml = simplexml_load_file("example xml"); //读取xml文件 $newxml = $xml >asXML(); //标准化$xml $fp = fopen("newxml xml" "w"); //新建xml文件 fwrite($fp $newxml); //写入 xml文件 fclose($fp);

PHP可以方便的生成和读取XML文件 PHP主要通过DOMDocument DOMElement和DOMNodeList来完成XML的读取与写入 *** 作的 下面就简要说明下如何使用这些类

一.生成XML文件 对于一个如下XML文件

[] <xml version=" " encoding="UTF "> <article> <title>PHP访问MySql数据库 初级篇</title> <link> </article> <xml version=" " encoding="UTF "> <article> <title>PHP访问MySql数据库 初级篇</title> <link> </article> 我们来看看如何用PHP来生成

首先new一个DOMDocument对象并设置编码格式

$dom = newDOMDocument( UTF );

$dom >formatOutput= true;

再创建<article>结点和<title>结点

$rootelement =$dom >createElement("article");

$title =$dom >createElement("title" "PHP访问MySql数据库 初级篇");

然后创建带文本内容的<link>结点

$link =$dom >createElement("link" "

也可以先生成<link>结点再为其添加文本内容

$link = $dom >createElement("link");

$linktext =$dom >createTextNode( );

$link >appendChild($linktext);

然后将<title>和<link>结点加入到<article>结点中去

$rootelement >appendChild($title);

$rootelement >appendChild($link);

最后将<article>结点加入到DOMDocument对象中

$dom >appendChild($rootelement);

这样一个完整的XML就生成完毕了 再整出整个XML

echo $dom >saveXML() ;

saveXML()也可以只输入部分XML文本 如echo $dom >saveXML($link);就只会输出<link>结点 <link>

下面再给出一个完整的PHP中数据内容输出到XML文件的例子 该例子会对将一个PHP数组输出到XML文件中

[php] <php //将数组输出到XML文件中 // by MoreWindows( $article_array = array( "第一篇" => array( "title"=>"PHP访问MySql数据库 初级篇" "link"=>" ) "第二篇" => array( "title"=>"PHP访问MySql数据库 中级篇 Smarty技术" "link"=>" ) "第三篇" => array( "title"=>"PHP访问MySql数据库 高级篇 AJAX技术" "link"=>" ) ); $dom = new DOMDocument( UTF ); $dom >formatOutput = true; $rootelement = $dom >createElement("MoreWindows"); foreach ($article_array as $key=>$value) { $article = $dom >createElement("article" $key); $title = $dom >createElement("title" $value[ title ]); $link = $dom >createElement("link" $value[ link ]); $article >appendChild($title); $article >appendChild($link); $rootelement >appendChild($article);

} $dom >appendChild($rootelement); $filename = "D:test xml"; echo XML文件大小 $dom >save($filename) 字节 ; > <php //将数组输出到XML文件中 // by MoreWindows( $article_array = array( "第一篇" => array( "title"=>"PHP访问MySql数据库 初级篇" "link"=>" ) "第二篇" => array( "title"=>"PHP访问MySql数据库 中级篇 Smarty技术" "link"=>" ) "第三篇" => array( "title"=>"PHP访问MySql数据库 高级篇 AJAX技术" "link"=>" ) ); $dom = new DOMDocument( UTF ); $dom >formatOutput = true; $rootelement = $dom >createElement("MoreWindows"); foreach ($article_array as $key=>$value) { $article = $dom >createElement("article" $key); $title = $dom >createElement("title" $value[ title ]); $link = $dom >createElement("link" $value[ link ]); $article >appendChild($title); $article >appendChild($link); $rootelement >appendChild($article); } $dom >appendChild($rootelement); $filename = "D:test xml"; echo XML文件大小 $dom >save($filename) 字节 ; > 运行该PHP会在D盘上生成test xml文件(Win + XAMPP + IE 测试通过)

二.读取XML文件 以读取前文中生成的D:test xml为例

[php] <php //读取XML文件 // by MoreWindows( $filename = "D:test xml"; $article_array = array(); $dom = new DOMDocument( UTF ); $dom >load($filename); //得到<article>结点 $articles = $dom >getElementsByTagName("article"); echo <article> 结点个数 $articles >length; foreach ($articles as $article) { $id = $article >getElementsByTagName("id") >item( ) >nodeValue; $title = $article >getElementsByTagName("title") >item( ) >nodeValue; $link = $article >getElementsByTagName("link") >item( ) >nodeValue; $article_array[$id] = array( title =>$title link =>$link); } //输出结果 echo "<pre>"; var_dump($article_array); echo "</pre>"; > <php //读取XML文件 // by MoreWindows( $filename = "D:test xml"; $article_array = array();

$dom = new DOMDocument( UTF ); $dom >load($filename);

//得到<article>结点 $articles = $dom >getElementsByTagName("article"); echo <article> 结点个数 $articles >length; foreach ($articles as $article) { $id = $article >getElementsByTagName("id") >item( ) >nodeValue; $title = $article >getElementsByTagName("title") >item( ) >nodeValue; $link = $article >getElementsByTagName("link") >item( ) >nodeValue; $article_array[$id] = array( title =>$title link =>$link); }

lishixinzhi/Article/program/PHP/201311/20909

/ 前段时间恰好做过类似的东西,代码可以给你参考下。

   Xml配置见最后

 /

typedef struct SrcFileFmt

{

    int   ColID;

    char  ColCode[64];      / 字段英文名称 /

    char  ColName[128];     / 字段中文名称/

    char  ColType[20];      / 字段类型(包含长度) /

    char  ColComment[128];  / 字段描述 /

}SrcFileFmt;

int main(int argc, char argv)

{

    SrcFileFmt SrcFileFmt[128];

    int iNum = -1;

    if ( 2 > argc )

    {

        printf("Usage: %s SrcXmlFile\n", argv[0]);

        return -1;

    }

    iNum = parseSourceCfg(SrcCfgFile, SrcFileFmt);

    if (iNum == -1)

    {

        return -1;

    }

    return 0;

}

/ 调用此函数后,xml文件的内容会被存储到结构体数组SrcFileFmt srcfilefmt[]中

  此函数依赖于libxml2-292tarxz

 /

int parseSourceCfg(char FileName, SrcFileFmt srcfilefmt[])

{ / 解析源文件xml,FileName 为源xml文件名 /

    xmlDocPtr doc;

    xmlNodePtr cur, root;

    char sFileName[64] = {'\0'};

    int cnt = 0;

    if (FileName == NULL)

    {

        return -1;

    }

    sprintf(sFileName, "%sxml", FileName);

    doc = xmlParseFile(sFileName);

    if (doc == NULL)

    {

        return -1;

    }

    root = xmlDocGetRootElement(doc);

    if (root == NULL) {

        xmlFreeDoc(doc);

        return(-1);

    }

    if (xmlStrcmp(root->name, (const xmlChar ) "SrcRoot"))

    {

        xmlFreeDoc(doc);

        return -1;

    }

    

    cur = root->xmlChildrenNode;

    while (cur != NULL) 

    {

        if ((!xmlStrcmp(cur->name, (const xmlChar )"Column")))

        {

            xmlChar key;

            xmlNodePtr cur_sub = cur;

            cur_sub = cur_sub->xmlChildrenNode;

            while (cur_sub != NULL) 

            {

                if ((!xmlStrcmp(cur_sub->name, (const xmlChar )"ColID"))) {

                    key = xmlNodeListGetString(doc, cur_sub->xmlChildrenNode, 1);

                    killblank((char)key);

                    srcfilefmt[cnt]ColID = atoi((char)key);

                    xmlFree(key);

                }

                if ((!xmlStrcmp(cur_sub->name, (const xmlChar )"ColCode"))) {

                    key = xmlNodeListGetString(doc, cur_sub->xmlChildrenNode, 1);

                    killblank((char)key);

                    strcpy(srcfilefmt[cnt]ColCode, (char)key);

                    xmlFree(key);

                }

                else if ((!xmlStrcmp(cur_sub->name, (const xmlChar )"ColName"))) {

                    key = xmlNodeListGetString(doc, cur_sub->xmlChildrenNode, 1);

                    killblank((char)key);

                    strcpy(srcfilefmt[cnt]ColName, (char)key);

                    xmlFree(key);

                }

                else if ((!xmlStrcmp(cur_sub->name, (const xmlChar )"ColType"))) {

                    key = xmlNodeListGetString(doc, cur_sub->xmlChildrenNode, 1);

                     killblank((char)key);

                    strcpy(srcfilefmt[cnt]ColType, (char)key);

                    xmlFree(key);

                }

                else if ((!xmlStrcmp(cur_sub->name, (const xmlChar )"ColComment"))) {

                    key = xmlNodeListGetString(doc, cur_sub->xmlChildrenNode, 1);

                    killblank((char)key);

                    strcpy(srcfilefmt[cnt]ColComment, (char)key);

                    xmlFree(key);

                }

                cur_sub = cur_sub->next;

            }

            cnt++;

        }

        cur = cur->next;

    }

    xmlFreeDoc(doc); 

    return cnt;

}

<SrcRoot>

    <Column>

        <ColID>1</ColID>

        <ColCode>kmh</ColCode>

        <ColName>字段1</ColName>

        <ColType>VARCHAR(11)</ColType>

    </Column>

    <Column>

        <ColID>2</ColID>

        <ColCode>dfkmh</ColCode>

        <ColName>字段2</ColName>

        <ColType>VARCHAR(11)</ColType>

    </Column>

    <Column>

        <ColID>3</ColID>

        <ColCode>hbh</ColCode>

        <ColName>字段3</ColName>

        <ColType>INTEGER(10)</ColType>

    </Column>

</SrcRoot>

以上就是关于请问如何用asp或者vb读取xml 文件中各个节点的数据我想把每一组数据读出来后放到数组中全部的内容,包括:请问如何用asp或者vb读取xml 文件中各个节点的数据我想把每一组数据读出来后放到数组中、java截取xml文件中某一标签中的内容,xml文件是以字符串形式存在的,截下的内容保存为数组。。、C#如何将xml数据转换成Array类型或者集合类多谢!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/10087410.html

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

发表评论

登录后才能评论

评论列表(0条)

保存