Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XElement解析XML_Xml_Vb.net_Xelement - Fatal编程技术网

使用XElement解析XML

使用XElement解析XML,xml,vb.net,xelement,Xml,Vb.net,Xelement,我对使用VB.NET解析XML非常陌生。我有一些这种格式的XML(简化视图) 我试图使用XElement来解析这个,但是不确定如何继续。我试着使用.subjections(“Range”)进行迭代,它确实给出了数字,但我无法区分from和to 任何帮助都将不胜感激 谢谢好的,我想我找到了一个方法,虽然它不干净 我创建了两个枚举数,一个用于子体(“from”),另一个用于描述体(“to”) 然后,在循环中,我可以轻松地构造字符串 类似于这样的内容(键入内存,语法可能不完整,txt是整个XML的XE

我对使用VB.NET解析XML非常陌生。我有一些这种格式的XML(简化视图)

我试图使用XElement来解析这个,但是不确定如何继续。我试着使用
.subjections(“Range”)
进行迭代,它确实给出了数字,但我无法区分from和to

任何帮助都将不胜感激


谢谢

好的,我想我找到了一个方法,虽然它不干净

我创建了两个枚举数,一个用于
子体(“from”)
,另一个用于
描述体(“to”)
然后,在循环中,我可以轻松地构造字符串

类似于这样的内容(键入内存,语法可能不完整,txt是整个XML的XElement对象)

Dim p as IEnumerable(of Xelement)=txt.substands(“from”)
Dim q作为IEnumerable(of Xelement)=txt.substands(“to”)
尺寸i为整数=0
而我
根据数据选择所有范围和格式。我在下面的示例中使用了System.Text.StringBuilder

    'your test data
    smpl = <root>
               <Range>
                   <from>1</from>
                   <to>5</to>
               </Range>
               <Range>
                   <from>10</from>
                   <to>20</to>
               </Range>
               <Range>
                   <from>100</from>
                   <to>200</to>
               </Range>
           </root>

    Dim sb As New System.Text.StringBuilder
    Dim ct As Integer = 1
    For Each r As XElement In smpl...<Range>
        sb.AppendFormat("{0}:{1}-{2};", ct, r.<from>.Value, r.<to>.Value)
        ct += 1
    Next
    sb.Remove(sb.Length - 1, 1)

    Dim s As String = sb.ToString

如果您有一个
Range
元素,您可以通过在Range元素上调用
.element(“from”)
.element(“to”)
来获取每个子元素。
1:1-5;2:10-20;3:100-200
Dim p as IEnumerable(of Xelement) = txt.Descendants("from")
Dim q as IEnumerable(of Xelement) = txt.Descendants("to")
Dim i as Integer = 0

While i < p.Count
String.Format("{0}:{1}-{2}", i.ToString,p(i),q(i))
End While
    'your test data
    smpl = <root>
               <Range>
                   <from>1</from>
                   <to>5</to>
               </Range>
               <Range>
                   <from>10</from>
                   <to>20</to>
               </Range>
               <Range>
                   <from>100</from>
                   <to>200</to>
               </Range>
           </root>

    Dim sb As New System.Text.StringBuilder
    Dim ct As Integer = 1
    For Each r As XElement In smpl...<Range>
        sb.AppendFormat("{0}:{1}-{2};", ct, r.<from>.Value, r.<to>.Value)
        ct += 1
    Next
    sb.Remove(sb.Length - 1, 1)

    Dim s As String = sb.ToString
 1:1-5;2:10-20;3:100-200