2
我在使用包含LINQ to XML命名空间的第三方XML字符串时遇到问题。LINQ to XML和命名空间问题
在下面的代码中,一切都可以找到。我可以选择xElement(xEl1)并更新其值。
'Example Without Namespace
Dim XmlWithOutNs = _
<?xml version="1.0"?>
<RATABASECALC>
<RATEREQUEST>
<ANCHOR>
<DATABASENAME>DatabaseName</DATABASENAME>
<DATABASEPW>DatabasePw</DATABASEPW>
</ANCHOR>
</RATEREQUEST>
</RATABASECALC>
Dim xEl1 = XmlWithOutNs...<DATABASEPW>.FirstOrDefault
If xEl1 IsNot Nothing Then
xEl1.Value = "test"
End If
但是,在下面的代码中,xElement(xEl2)返回Nothing。唯一的区别是名称空间(的xmlns =“http://www.cgi.com/Ratabase)
'Example With Namespace
Dim XmlWithNs = _
<?xml version="1.0"?>
<RATABASECALC xmlns="http://www.cgi.com/Ratabase">
<RATEREQUEST>
<ANCHOR>
<DATABASENAME>DatabaseName</DATABASENAME>
<DATABASEPW>DatabasePw</DATABASEPW>
</ANCHOR>
</RATEREQUEST>
</RATABASECALC>
Dim xEl2 = XmlWithNs...<DATABASEPW>.FirstOrDefault
If xEl2 IsNot Nothing Then
xEl2.Value = "test"
End If
所以我的问题是:1。 这究竟是为什么 2.如何解决这个问题? ?问题
THX马克,工作就像一个魅力。 – Richard 2010-03-12 20:54:49
这里是VB代码,如果你不在意: 昏暗的NS作为的XNamespace = “http://www.cgi.com/Ratabase” 昏暗xEl2 = XmlWithNs.Descendants(NS + “DATABASEPW”)FirstOrDefault – Richard 2010-03-12 21:02:16
啊。 ,这是更漂亮。我的最后一个VB回到VB6时代,而且我已经生锈了; -p – 2010-03-12 21:07:23