C#如何将xml数据转换成Array类型或者集合类?多谢!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何将xml数据转换成Array类型或者集合类?多谢!!!相关的知识,希望对你有一定的参考价值。

C#如何将xml数据转换成Array类型或者集合类?多谢!!!
如将xsd\xml文件夹解析成树形结构。

如将下面的xml转换成c#中的数组或集合,可体现树形结构。
<html>
<head>
<title></title>

</head>
<body>

</body>

</html>

多了个谢!!!

public static List<string> GetDataFromXml(string xmlpath)

    XmlDocument doc = new XmlDocument();
    doc.Load(xmlpath);
    XmlNodeList nodes = doc.SelectNodes("descendant::item");
    List<string> values = new List<string>();
    foreach (XmlNode node in nodes)
    
        values.Add(node.InnerText);
    
    return values;

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <item>ssss</item>
  <item>yyyy</item>
  <item>zzzz</item>
</root>

参考技术A 为(int i = 0; <bb.lenth; + +)


AA [I] =(字节)BB [I];

类型转换失败,因为ArrayList可以保存任何类型很容易!
参考技术B 用Dataset读取xml 读取之后是一张表 这样就很方便啊 参考技术C 如果该XML是由Dataset.WriteXML生成的,则可用Dataset直接读取,如果不是,则需用XMLReader来读取XML并逐行解析追问

请问该用什么结构存储才能保存成树形结构呢?多谢

追答

根据XML自定义结构即可。

用java,怎么把php数组转换成HashMap或者集合

php数组如:array (
0 =>
array (
'url' => 'abc',
'alt' => '123,
),
1 =>
array (
'url' => 'bcd',
'alt' => '234',
),
2 =>
array (
'url' => 'cde',
'alt' => '345',
),
)

public class Test

public static void main(String[] args)

List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("url", "abc");
map.put("alt","123");
list.add(map);

HashMap<String, Object> map1 = new HashMap<String, Object>();
map1.put("url", "bcd");
map1.put("alt", "234");
list.add(map1);

HashMap<String, Object> map2 = new HashMap<String, Object>();
map2.put("url", "cde");
map2.put("alt", "345");
list.add(map2);
for(HashMap<String, Object> lists : list)

System.out.println(lists);



结果:
alt=123, url=abc
alt=234, url=bcd
alt=345, url=cde
参考技术A 看LZ的描述,似乎是认为可以直接把一个php关联数组拿java中就使用,这样肯定是不行的啊,两种语言都不通用的。为了让两者能互相沟通,就需要一个通用格式的对象,这个对象就是json。两者要互相交换的数据,先转换成json对象传给对方,对方就能识别和使用了。回到问题,如果不这样做,强行传给java端的只能是一段原始的php数组源代码,即普通的string,对java来说,wtf,这是什么鬼?你说这是一个数组?都不符合我的数据结构怎么会是数组呢??硬要把这串string“转换”成HashMap或集合,就只能根据string中的key=>value对应特征进行字符拆分重组,才能得到需要的数据,这个方法LZ又是懂的。 参考技术B 先把php的数组通过json形式发送给java服务端.然后再通过json对象的形式吧他转换成为HashMap
php有个函数是json_encode(array);
转换就直接成为了json字符串.
参考技术C 1 先把数组转化成json数据
<?php

$str = array (0 =>array ('url' => 'abc','alt' => '123'),
1 =>array ('url' => 'bcd','alt' => '234'),
2 =>array ('url' => 'cde','alt' => '345'));
echo json_encode($str);

?>
结果:["url":"abc","alt":"123","url":"bcd","alt":"234","url":"cde","alt":"345"]
然后再用java解析这个json数据 这个java解析json网上很多 不会解析再问我追问

不是 你没懂我的意思啊。。 不是用PHP转换成json,是要用java直接转成json或者转成集合之类的

追答

java直接转php是不行的 两种不同的语言 之间进行操作 一定要有一个桥梁 好吧直接只能这样搞了
public class Test

public static void main(String[] args)

List> list = new ArrayList>();
HashMap map = new HashMap();
map.put("url", "abc");
map.put("alt","123");
list.add(map);

HashMap map1 = new HashMap();
map1.put("url", "bcd");
map1.put("alt", "234");
list.add(map1);

HashMap map2 = new HashMap();
map2.put("url", "cde");
map2.put("alt", "345");
list.add(map2);
for(HashMap lists : list)

System.out.println(lists);



结果:
alt=123, url=abc
alt=234, url=bcd
alt=345, url=cde

追问

这是什么意思啊...麻烦好好看下我的提问好么? 我是要把php数组解析后,把里边的数据放到集合或者Map里,关键是php数组怎么用java解析,我目前只能用拆分字符串的方法解析的了

以上是关于C#如何将xml数据转换成Array类型或者集合类?多谢!!!的主要内容,如果未能解决你的问题,请参考以下文章

C#如何将集合转换成实体对象

用java,怎么把php数组转换成HashMap或者集合

C#如何把INT类型转换为方法参数对应的枚举类型?怎么强制转换?

如何将 System::^array 从 C# 函数转换为 C++ 中的等效数据类型

C#如何将枚举类(enum)型转换成字符(string)类型

如何将数组转换成JSON-CSDN论坛