Hala xml ile geziniyorum.Sil XElement özniteliği temel alarak
<?xml version="1.0" encoding="utf-8"?>
<Attributes>
<AttributeSet id="10110">
<Attribute id="1">some text here</Attribute>
<Attribute id="2">some text here</Attribute>
<!-- 298 more Attribute nodes follow -->
<!-- note that the value for the id attribute is numbered consecutively -->
</AttributeSet>
</Attributes>
300 Özellik düğümleri ihtiyacım yok çoğu, toplam vardır: Şimdi şöyle bir dosya var. Benim yapmak istediğim, id niteliği için belirtilen bir değere sahip olmayan tüm Öznitelik düğümlerini kaldırmasıdır. Yaklaşık 10 değer içeren bir dizi dizisi oluşturdum. Bu değerler, xml'de tutmak istediğim özellikleri temsil eder. Geri kalanını kaldırmak istiyorum.
NedenseDim ss() As String = New String() {"39", "41", "38", "111", "148", "222", "256", "270", "283", "284"} 'keep the Attributes whose id value is one of these numbers
Dim rv As New List(Of String)'will hold Attribute ids to remove
Dim bool As Boolean = False
For Each x As XElement In doc...<eb:Attribute>
For Each s As String In ss
If [email protected] = s Then
bool = True
Exit For
End If
Next
If bool = True Then
'do nothing
Else 'no attribute matched any of the attribute ids listed mark xelement for removal
rv.Add([email protected])
End If
Next
'now remove the xelement
For Each tr As String In rv
Dim h As String = tr
doc...<eb:Attribute>.Where(Function(g) [email protected] = h).Remove()
Next
'save the xml
doc.Save("C:\myXMLFile.xml")
, benim kod çalışmaz:
Ne aşağıda kodu ile yapmaya çalışıyorum ben kullanmak istemiyorum bütün Özellik düğümleri kaldırarak xml değiştirmek olduğunu . İstenmeyen Attribute düğümlerinin hiçbiri kaldırılmaz.
Sorun nedir? String öznitelik değerleri dize dizimde herhangi bir sayıyla eşleşmeyen Öznitelik düğümlerini nasıl kaldırabilirim?
Şimdiden teşekkürler.
P.S. - Umarım problemimi tanımlarken kendimi net bir şekilde ifade ettim.