0

xmlファイルに文字列が存在するかどうかを確認しようとしています。存在しない場合は、その文字列をxmlファイルに追加する必要があります。

私のxmlファイルは次のようになります:

  <Employee>
      <Emp>
        <Name id="1">   A     </Name>
        <Name id="2">   C     </Name>
        <Name id="3">   D     </Name>
       </Emp>
  </Employee>

そして私は達成したい:

dim str as string = "b" 
if str exists in "xmlfile"
    'do something
else
    'add string to file
end if

私はLINQにまったく精通していませんが、私がやりたいことはLINQで可能であることを理解しています。私は以下を試しました:

Dim employee = XElement.Load(someStream)
Dim emp = employee.Element("Emp")
If emp IsNot Nothing Then
    else
        'add string to xml file
End If

これを試したところ、エラーが発生しました:XElement宣言されていません。

誰かがLINQなしでVB.NETでやりたいことをする方法を提案できますか?または、LINQを使用する必要がある場合、例を提供できますか?

.net 2.0(VB.NET)を使用しています

4

2 に答える 2

0

Empの子を反復処理する必要があります。現在、コードは<Emp>要素が存在するかどうかを確認するだけです。実際にやりたいことは、各<Name>要素をチェックして、その内部テキストに必要な文字列が含まれているかどうかを確認することだと思います。

XmlDocumentとXmlNodeを使用することもできます。これらは、XElementで問題が発生した場合に、.NET2.0で使用できるはずです。

于 2012-07-24T15:10:09.473 に答える
0

私があなたが望むと思うのは、もっと次のようなものです。

Dim employeeData As XDocument
Dim employeeElements as List(Of XElement)
Dim numberOfNames as Integer = 0

employeeData = XDocument.Load(someStream)

employeeElements = (From elements In employeeData.Decendants()
                    Where (elements.Name.LocalName.ToString() = "Emp")
                    Select elements).ToList()

For Each employee In employeeElements
    If (employee.<Name>.Value = "B") Then
        numberOfNames = numberOfNames + 1
    End If
Next

If numberOfNames > 0 Then
    'Insert "B" into xml
End If

これは、XDocumentを使用し、user1512185のように相互作用して、反復するXElementのリストを取得するためのLINQ式の例を示した例です。

これは、私のアプリの1つで行っていることの変更です。しかし、私はxmlに挿入しないので、そこであなたを助けることができるかどうかわかりません。

于 2012-07-24T15:36:23.730 に答える