使用 C# 解析 XML 字符串
Parsing XML string with C#
我是 c# 的新手,我想解析这个文件:
<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value><array><data>
<value><array><data>
<value><string>1</string></value>
<value><string>Tutos</string></value>
</data></array></value>
<value><array><data>
<value><string>3</string></value>
<value><string>BEBIDAS ALCOHOL</string></value>
</data></array></value>
<value><array><data>
<value><string>6</string></value>
<value><string>conse</string></value>
</data></array></value>
<value><array><data>
<value><string>7</string></value>
<value><string>Custom Packs</string></value>
</data></array></value>
<value><array><data>
<value><string>5</string></value>
<value><string> PRODUCT</string></value>
</data></array></value>
<value><array><data>
<value><string>4</string></value>
<value><string>PRODUCT BAAT</string></value>
</data></array></value>
<value><array><data>
<value><string>2</string></value>
<value><string>GGGGGr</string></value>
</data></array></value>
</data></array></value>
</param>
</params>
</methodResponse>
我尝试过使用 XMLnode,但是使用这段代码,xnList 的计数为 0。
XmlDocument xml = new XmlDocument();
xml.LoadXml(mensaje);
XmlNodeList xnList=xml.SelectNodes("/methodResponse/params/param/array/data");
如果我写:
XmlNodeList xnList=xml.SelectNodes("/methodResponse/params/param");
参数nxList.Count为1。
我认为问题是 c# 无法识别标签数组或数据。
有人能解决吗?
看来您XML路径不正确。尝试:
XmlNodeList xnList = xml.SelectNodes("/methodResponse/params/param/value/array/data");
xnList
中的第一项应该是:
<value>
<array>
<data>
<value>
<string>1</string>
</value>
<value>
<string>Tutos</string>
</value>
</data>
</array>
</value>
此外,如果您有权执行此操作(较少的子节点),您可能还想看看使 XML 不那么复杂(比 read/use 更容易)。如您所见,浏览 11 个节点以获得第一个实际值可能会非常混乱
我格式化了 XML 所以你可以看到它到底有多深:
<?xml version='1.0' ?>
<methodresponse>
<params>
<param>
<value>
<array>
<data>
<value>
<array>
<data>
<value>
<string>1</string>
</value>
<value>
<string>Tutos</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>3</string>
</value>
<value>
<string>BEBIDAS ALCOHOL</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>6</string>
</value>
<value>
<string>conse</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>7</string>
</value>
<value>
<string>Custom Packs</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>5</string>
</value>
<value>
<string> PRODUCT</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>4</string>
</value>
<value>
<string>PRODUCT BAAT</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>2</string>
</value>
<value>
<string>GGGGGr</string>
</value>
</data>
</array>
</value>
</data>
</array>
</value>
</param>
</params>
</methodresponse>
我是 c# 的新手,我想解析这个文件:
<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value><array><data>
<value><array><data>
<value><string>1</string></value>
<value><string>Tutos</string></value>
</data></array></value>
<value><array><data>
<value><string>3</string></value>
<value><string>BEBIDAS ALCOHOL</string></value>
</data></array></value>
<value><array><data>
<value><string>6</string></value>
<value><string>conse</string></value>
</data></array></value>
<value><array><data>
<value><string>7</string></value>
<value><string>Custom Packs</string></value>
</data></array></value>
<value><array><data>
<value><string>5</string></value>
<value><string> PRODUCT</string></value>
</data></array></value>
<value><array><data>
<value><string>4</string></value>
<value><string>PRODUCT BAAT</string></value>
</data></array></value>
<value><array><data>
<value><string>2</string></value>
<value><string>GGGGGr</string></value>
</data></array></value>
</data></array></value>
</param>
</params>
</methodResponse>
我尝试过使用 XMLnode,但是使用这段代码,xnList 的计数为 0。
XmlDocument xml = new XmlDocument();
xml.LoadXml(mensaje);
XmlNodeList xnList=xml.SelectNodes("/methodResponse/params/param/array/data");
如果我写:
XmlNodeList xnList=xml.SelectNodes("/methodResponse/params/param");
参数nxList.Count为1。 我认为问题是 c# 无法识别标签数组或数据。 有人能解决吗?
看来您XML路径不正确。尝试:
XmlNodeList xnList = xml.SelectNodes("/methodResponse/params/param/value/array/data");
xnList
中的第一项应该是:
<value>
<array>
<data>
<value>
<string>1</string>
</value>
<value>
<string>Tutos</string>
</value>
</data>
</array>
</value>
此外,如果您有权执行此操作(较少的子节点),您可能还想看看使 XML 不那么复杂(比 read/use 更容易)。如您所见,浏览 11 个节点以获得第一个实际值可能会非常混乱
我格式化了 XML 所以你可以看到它到底有多深:
<?xml version='1.0' ?>
<methodresponse>
<params>
<param>
<value>
<array>
<data>
<value>
<array>
<data>
<value>
<string>1</string>
</value>
<value>
<string>Tutos</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>3</string>
</value>
<value>
<string>BEBIDAS ALCOHOL</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>6</string>
</value>
<value>
<string>conse</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>7</string>
</value>
<value>
<string>Custom Packs</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>5</string>
</value>
<value>
<string> PRODUCT</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>4</string>
</value>
<value>
<string>PRODUCT BAAT</string>
</value>
</data>
</array>
</value>
<value>
<array>
<data>
<value>
<string>2</string>
</value>
<value>
<string>GGGGGr</string>
</value>
</data>
</array>
</value>
</data>
</array>
</value>
</param>
</params>
</methodresponse>