4

この質問は、この質問の論理的な続きです。ここXElementで、デフォルト以外の名前空間に要素が含まれているとします。

<Body xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <ReportItems />        
  <Height />
  <rd:Style />
</Body>

前の質問の回答で提案されているのと同じアプローチ、つまり属性の削除に従おうとしていxmlnsますが、このように xmlns + プレフィックスの場合は機能しませんxmlns:xx

TL;DR バージョン

これは機能します:

Dim xml = <Body xmlns="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"/>
xml.Attribute("xmlns").Remove()

これはしません:

Dim xml = <Body xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"/>
xml.Attribute("xmlns:rd").Remove()

このエラーの取得:

XmlException was unhandled
The ':' character, hexadecimal value 0x3A, cannot be included in a name.

xmlns:xxから属性を削除するにはどうすればよいXElementですか?

4

1 に答える 1

4

代わりにこれを試してください:

xml.Attribute(XNamespace.Get("http://www.w3.org/2000/xmlns/") + "rd").Remove()
于 2012-11-28T22:08:50.303 に答える