xml - Visual Studio LINQ for XML 子标签值的不同列表
问题描述
我正在为 XML 查询编写我的第一个 LINQ,但没有成功。我有以下代码:
Dim xmlIn = XDocument.Load("wiktionary.xml")
Dim xmlOut = <namespaces>
<%= From ns In xmlIn...<mediawiki>.<page>.<ns>
Select ns %>
</namespaces>
My.Computer.FileSystem.WriteAllText("wiktionaryout.xml", xmlOut.ToString, False)
Process.Start("wiktionaryout.xml")
XML 的格式为
<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="af">
<siteinfo>
...
</siteinfo>
<page>
<title>MediaWiki:Edithelppage</title>
<ns>8</ns>
<id>21</id>
</page>
</mediawiki>
我正在尝试提取<ns>
标签之间的不同值列表。目前我只是想获取所有值的列表,但它只是带回
<?xml version="1.0"?>
<namespaces/>
有人知道我要去哪里错了吗?
解决方案
尝试以下:
Imports System.Xml
Imports System.Xml.Linq
Module Module1
Const FILENAME As String = "c:\temp\test.xml"
Sub Main()
Dim doc As XDocument = XDocument.Load(FILENAME)
Dim ns As List(Of String) = doc.Descendants().Where(Function(x) x.Name.LocalName = "ns").Select(Function(x) CType(x, String)).Distinct().ToList()
End Sub
End Module
推荐阅读
- git - 将 httpd.conf 放在存储库的哪个位置以创建 docker 映像
- php - php列出表中的所有类别
- arrays - 在 Go 中调用 WebAssembly 代码时如何使用 Go slice?
- android - 在约束布局内的线性布局中将元素置于其他元素之下
- python - Pandas groupby 和 count:包括不在 DataFrame 中的类别
- javascript - 仅在此处地图中尽可能避免收费公路
- cron - 创建一个 AWS CRON 字符串,它将在选定的日子里每天运行
- java - 使用基于另一个对象的 getter 的反射调用 setter 方法的方式
- variables - How to add Text variable on GStreamer?
- java - 如何在使用客户端库(java)在谷歌 BigQuery 中加载 csv 数据时跳过标题行