如何从VB.net属性中提取Xml节点值?

2026-05-06 09:042阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计422个文字,预计阅读时间需要2分钟。

如何从VB.net属性中提取Xml节点值?

我喜欢使用XML进行分类,以下是一个示例:

xml SubCategory1/SubCategory SubCategoryName SubCategory2/SubCategory SubCategoryName

如何获取SubCategory?

我喜欢 XML

<Categories> <category name="a"> <SubCategory>1</SubCategory> <SubCategoryName>name1</SubCategoryName> </category> <category name="b"> <SubCategory>2</SubCategory> <SubCategoryName>name2</SubCategoryName> </category> </Categories>

如何获得< SubCategoryName>的值来自< category name =“a”>?

正如Usman推荐的那样,你可以使用LINQ,但另一个流行的选择是使用XPath.您可以使用XPath使用XDocument类或旧的XmlDocument类来选择匹配的元素.

以下是通过XDocument类使用XPath执行此操作的方法:

Dim doc As New XDocument() doc.Load(filePath) Dim name As String = doc.XPathSelectElement("/Categories/category[@name='a']/SubCategoryName").Value

以下是通过XmlDocument类使用XPath执行此操作的方法:

Dim doc As New XmlDocument() doc.Load(filePath) Dim name As String = doc.SelectSingleNode("/Categories/category[@name='a']/SubCategoryName").InnerText

这是XPath各部分的含义:

> / Categories – 开头的斜杠指示它查看XML文档的根目录.斜杠后跟我们在根目录中查找的子元素的名称.
> / category – 我们在/ Categories元素中查找的元素的名称.
> [@ name =’a’] – 括号表示它是类似条件的if语句. @符号表示我们指定了一个属性名称(而不是元素名称).
> / SubCategoryName – 我们在匹配该条件的category元素内查找的子元素的名称.

XPath非常强大和灵活. XPath是许多XML工具和技术(如XSLT)使用的标准查询语言,因此它非常有用.此外,有时,即使在文档中,通过简单的字符串专门引用文档中的特定XML节点也很方便. LINQ很棒,但它是Microsoft专有技术,如果需要,您不能将LINQ路径作为字符串存储在数据库或配置文件中,因此有时XPath是一种优选方法.

XPath的另一个变体是// category [@ name =’a’] / SubCategoryName.开头的双斜杠指示它在文档中的任何位置找到类别元素,而不是在任何特定的父元素下.

如何从VB.net属性中提取Xml节点值?

本文共计422个文字,预计阅读时间需要2分钟。

如何从VB.net属性中提取Xml节点值?

我喜欢使用XML进行分类,以下是一个示例:

xml SubCategory1/SubCategory SubCategoryName SubCategory2/SubCategory SubCategoryName

如何获取SubCategory?

我喜欢 XML

<Categories> <category name="a"> <SubCategory>1</SubCategory> <SubCategoryName>name1</SubCategoryName> </category> <category name="b"> <SubCategory>2</SubCategory> <SubCategoryName>name2</SubCategoryName> </category> </Categories>

如何获得< SubCategoryName>的值来自< category name =“a”>?

正如Usman推荐的那样,你可以使用LINQ,但另一个流行的选择是使用XPath.您可以使用XPath使用XDocument类或旧的XmlDocument类来选择匹配的元素.

以下是通过XDocument类使用XPath执行此操作的方法:

Dim doc As New XDocument() doc.Load(filePath) Dim name As String = doc.XPathSelectElement("/Categories/category[@name='a']/SubCategoryName").Value

以下是通过XmlDocument类使用XPath执行此操作的方法:

Dim doc As New XmlDocument() doc.Load(filePath) Dim name As String = doc.SelectSingleNode("/Categories/category[@name='a']/SubCategoryName").InnerText

这是XPath各部分的含义:

> / Categories – 开头的斜杠指示它查看XML文档的根目录.斜杠后跟我们在根目录中查找的子元素的名称.
> / category – 我们在/ Categories元素中查找的元素的名称.
> [@ name =’a’] – 括号表示它是类似条件的if语句. @符号表示我们指定了一个属性名称(而不是元素名称).
> / SubCategoryName – 我们在匹配该条件的category元素内查找的子元素的名称.

XPath非常强大和灵活. XPath是许多XML工具和技术(如XSLT)使用的标准查询语言,因此它非常有用.此外,有时,即使在文档中,通过简单的字符串专门引用文档中的特定XML节点也很方便. LINQ很棒,但它是Microsoft专有技术,如果需要,您不能将LINQ路径作为字符串存储在数据库或配置文件中,因此有时XPath是一种优选方法.

XPath的另一个变体是// category [@ name =’a’] / SubCategoryName.开头的双斜杠指示它在文档中的任何位置找到类别元素,而不是在任何特定的父元素下.

如何从VB.net属性中提取Xml节点值?