【发布时间】:2010-03-12 20:37:52
【问题描述】:
我在使用第三方 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) 没有返回任何内容。唯一的区别是命名空间 (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. 我该如何解决这个问题?
【问题讨论】: