php如何获取xml根节点名称

php如何获取xml根节点名称,第1张

<xml version="10 encoding="UTF-8">

<humans>

<zhangying>

<name>张映</name>

<sex>男</sex>

<old>28</old>

</zhangying>

<tank>

<name>tank</name>

<sex>男</sex>

<old>28</old>

</tank>

</humans>

simplexml读取xml

<php

$xml_array=simplexml_load_file('personxml'); //将XML中的数据,读取到数组对象中

foreach($xml_array as $tmp){

echo $tmp->name"-"$tmp->sex"-"$tmp->old"<br>";

}

>

思路如下:

xml文件未知不明白什么意思?我索性就理解为一个目录下有很多xml文件,每个xml文件获取其中的bean节点属性

1> 有xml文件路径,获取该路径下的所有文件,用后缀“xml”或“XML”过滤得到xml文件。

2> javaxxmlparsersDocumentBuilder builder = factorynewDocumentBuilder();

orgw3cdomDocument doc = builderparse(is); 创建文档对象。

3>docgetChildNodes()获取文档中所有的节点,循环遍历所得节点node,

通过nodegetAttributes()获取节点所有属性,获取各个属性name和值即可,输出想要得到的数据。

或者通过docgetElementsByTagName("bean");直接指定bean节点。然后用同样的方法获取属性名和值,输出。

以上是根据jdk的W3C库解析的。想方便可以通过dom4j、jdom进行文件 *** 作。思路变化不大。

�0�2�0�2�0�2 最近遇到一个问题,用java解析xml时,需要获得一个xml文档中指定的某个节点,当然最简单的办法就是遍历所有的节点,如某个节点满足条件,则是我们要的结果,但我不想遍历所有的节点,因为这个问题只是一个复杂过程中的一小步,它会被反复调用,因此我需要最直接的方法获得某个已知属性值的确定节点。因此,这个问题也可以概括为:有没有根据节点(或name)属性名获得该节点的原api。

�0�2�0�2�0�2�0�2 具体一些,有如下xml文档:<sheet<field row="2" col="2" type="int"DEA_XZ</field2_2

<field row="2" col="3" type="string"RTP_ID</field2_3

<field row="2" col="4" type="string"DEA_YEAR</field2_4

<field row="2" col="7" type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 我想获得row="2" col="3"的节点,据我所查,好像没有直接的方法。

�0�2�0�2 变通一下,xml修改如下:�0�2<sheet<field name="row2_col2" type="int"DEA_XZ</field2_2

<field name="row2_col3" type="string"RTP_ID</field2_3

<field name="row2_col4" type="string"DEA_YEAR</field2_4

<field name="row2_col7" type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 这样呢?有没有直接的api,可以获得name为row2_col3的节点?同样,我也没有得到答案,大家有知道告诉小弟一下,不胜感激。

�0�2�0�2 实在没有办法,我就用了种“另类”的方式,xml如下:<sheet<field2_2 type="int"DEA_XZ</field2_2

<field2_3 type="string"RTP_ID</field2_3

<field2_4 type="string"DEA_YEAR</field2_4

<field2_7 type="int"DEA_RTP_TYPE</field2_7</sheet�0�2�0�2 这样看起来很不优雅,至少我是这么认为的。但这样却可以直接拿到你想要的节点:�0�2orgjdomElement root = documentgetRootElement();

�0�2�0�2 目前,我就是这样解决的,但我感觉很不优雅,我想我的xml文档(配置)文件应该保持第一种或第二种格式更好些。所以请大家帮忙,看看有没有直接的方法(api)

dom4j中,使用Elementattributes方法可以获取到节点的属性,而使用elements则可以获取相应的子节点

比如:

Element root = docgetRootElement();

List attrList = rootattributes();

for (int i = 0; i < attrListsize(); i++) {

//属性的取得

Attribute item = (Attribute)attrListget(i);

Systemoutprintln(itemgetName() + "=" + itemgetValue());

}

List childList = rootelements();

for (int i = 0; i < childListsize(); i++) {

//子节点的 *** 作

Element it = (Element) childListget(i);

//对子节点进行其它 *** 作

}

通过ID获取air节点可以使用xpath:

XmlDocument doc = new XmlDocument();

docLoadXml(xml格式字符串);

XmlNode xn = docSelectSingleNode("//air[@id='id号']");

得到的xn即为id为指定id号的air节点。

至于将这个节点放入dataset。。。。那没办法咯 ,只能循环xn节点的子节点,将子节点值放入dataset

xml;

}

}

private

string

namesex

=

sexname)

{

case

"/。;;

}

set

{

name

=

value;"/

/

/你的xml地址

string

id

=

"/

<

}

}

}

}

xml里面的所有信息就是在list集合里面了;/add(info);

public

string

sex

{

get

{

return

sex;xuliehua\;//100</)

{

foreach

(xmlnode

node1

in

node;/)

{

foreach

(xmlnode

node2

in

node1。;sex>读取xml里面的文件信息

list&lt。:

sex

=

node2;

}

set

{

id

=

value;dlcl\;//xml"

foreach

(xmlnode

node

in

xml;

//

list

=

new

list</读取xml文件

xml;field>/name>

&lt:

name

=

node2,string

sex)

{

this;//abc&gtname

==

"/

<mycomputer\field>/id"/name>

string

name

=

"

</。但是道理是一样的。innertext;id&gtid

=

id;

<打印电脑\

/name

=

name,

sex);c#\

//s2c#\/sex>);

break。

/childnodes)

{

switch

(node2;男&lt。;lisi<

break;1<item"//id>sex>sex&gt。

public

class

information

{

private

string

id;

public

string

id

{

get

{

return

id;//();

}

}

public

information()

{

}

public

information(string

idinnertext;xml文件信息

<

defaultchildnodes)

{

if

(node1;

<实体类;item&gt,string

name。

当然你可以做多个表和多个字段属性咯;id>/

this;name&quot:\"

/zhangsan</information>e;

</

case

"item>

}

}

info

=

new

information(id;name>

}

}

//

<item>

public

string

name

{

get

{

return

name;"男</load(@"

/childnodes)

{

if

(node;实例化xml

xmldocument

xml

=

new

xmldocument()innertext;

<//:

id

=

node2;name&gtname

==

"/。嘿嘿;

&lt!

xml实际就是一个本地简单的数据库

我只做了一个简单的;;abc>item>/

&lt。简单吧;

</,

name;2<

string

sex

=

"

this;//很高兴可以给你解答;abc"

}

set

{

sex

=

value;下面开始循环读取xml文件信息/

break;information>

information

info

=

null;id>/;

}

}

private

string

sex;/将信息保存至集合

list;/

以上就是关于php如何获取xml根节点名称全部的内容,包括:php如何获取xml根节点名称、java如何从一个xml文件读取根节点、子节点属性。、java中如何直接获得xml中的某个指定的节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/10147333.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存