
<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<。:
sex
=
node2;
}
set
{
id
=
value;dlcl\;//xml"
foreach
(xmlnode
node
in
xml;
//
list
=
new
list</读取xml文件
xml;field>/name>
<:
name
=
node2,string
sex)
{
this;//abc>name
==
"/
<mycomputer\field>/id"/name>
string
name
=
"
</。但是道理是一样的。innertext;id>id
=
id;
<打印电脑\
/name
=
name,
sex);c#\
//s2c#\/sex>);
break。
/childnodes)
{
switch
(node2;男<。;lisi<
break;1<item"//id>sex>sex>。
public
class
information
{
private
string
id;
public
string
id
{
get
{
return
id;//();
}
}
public
information()
{
}
public
information(string
idinnertext;xml文件信息
<
defaultchildnodes)
{
if
(node1;
<实体类;item>,string
name。
当然你可以做多个表和多个字段属性咯;id>/
this;name":\"
/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>name
==
"/。嘿嘿;
<!
xml实际就是一个本地简单的数据库
我只做了一个简单的;;abc>item>/
<。简单吧;
</,
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中的某个指定的节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)