错误替换xml迭代

时间:2018-03-09 07:45:12

标签: xml vb.net

我有2个xmls,在“dokument”-Attribute中有所不同。所以我想在一个xml中选择Attribute并将值复制到另一个。 问题如下:第一次迭代正确替换。但接下来却没有。在代码中,我通过将i更改为j或j更改为i来识别典型错误。

<?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
<ups:katalog xmlns:ups="http://xxxx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ups:vorlage name="nameA">
        <ups:version dokument="Variante A">
        </ups:version>
    </ups:vorlage>
    <ups:vorlage name="nameB">
        <ups:version dokument="Variante B">
        </ups:version>
    </ups:vorlage>
</ups:katalog>
ZielUpsVorlageName is a XMLNodeList
UpsVorlageName.Count is a XMLNodeList


    For i As Integer = 0 To ZielUpsVorlageName.Count - 1
        For j As Integer = 0 To UpsVorlageName.Count - 1
            If ZielUpsVorlageName(i).Attributes.GetNamedItem("name").Value.Equals(UpsVorlageName(j).Attributes.GetNamedItem("name").Value) Then
                ZielUpsVorlageName(i).SelectSingleNode("//ups:version", ZielXmlNamespace).Attributes.GetNamedItem("dokument").Value = UpsVorlageName(j).SelectSingleNode("//ups:version", xmlNamespace).Attributes.GetNamedItem("dokument").Value
            End If
        Next
    Next

我试过了:

UpsVorlageName(j).SelectSingleNode("//ups:version", xmlNamespace).Attributes.GetNamedItem("dokument").value
result: "Variante A"

UpsVorlageName(j).InnerXml
result: the innertext contains "Variante B"

UpsVorlageName(j).ChildNodes(0).SelectSingleNode("//ups:version", xmlNamespace).Attributes.GetNamedItem("dokument").value
result: "Variante A"        

我希望有人可以帮助我。

0 个答案:

没有答案