如何在VB.NET中创建带命名空间的嵌套XML节点
解决VB.NET XElement创建带rdf/rql命名空间XML的问题
要生成目标XML结构,你需要完整定义两个命名空间、添加对应属性及嵌套子元素,以下是完整实现代码:
' 定义rdf和rql命名空间(确保MyKeyContainer能正确返回对应命名空间URI) Dim rdf As XNamespace = MyKeyContainer.MyNamespace("rdf") Dim rql As XNamespace = MyKeyContainer.MyNamespace("rql") ' 创建根元素rdf:_11,并添加rdf:parseType属性 Dim myNode As New XElement(rdf + "_11", New XAttribute(rdf + "parseType", "Resource"), ' 添加rql:object子元素 New XElement(rql + "object", "R1"), ' 添加rql:field子元素及内部嵌套结构 New XElement(rql + "field", New XElement(rdf + "Seq", New XElement(rdf + "li", New XAttribute(rdf + "resource", "http://com.ibm.rdm/navigation#tag")), New XElement(rdf + "li", New XAttribute(rdf + "resource", "http://purl.org/dc/terms/title")) ) ) ) ' 输出XML验证结果 Console.WriteLine(myNode.ToString())
关键注意点:
- 命名空间全覆盖:必须同时定义
rdf和rql两个命名空间,所有带前缀的元素/属性都要绑定对应命名空间,不能遗漏。 - 属性的命名空间:
rdf:parseType和rdf:resource这类带前缀的属性,也要使用rdf命名空间创建,不能直接用字符串作为属性名。 - 嵌套结构层级:严格按照目标XML的层级关系创建子元素,确保
rdf:Seq嵌套在rql:field内,rdf:li嵌套在rdf:Seq内。
执行上述代码后,生成的XML结构将完全匹配你的目标需求。
内容的提问来源于stack exchange,提问作者user30880528
相关产品推荐
相关产品推荐

