如何使用 C# 从标签 xml 中提取属性?
how to extract attribute from tag xml with c#?
<channel>
<title>test + test</title>
<link>http://testprog.test.net/api/test</link>
<description>test.com</description>
<category>test + test</category>
<item xml:base="http://test.com/test.html?id=25>
<guid isPermaLink="false">25</guid>
<link>http://test.com/link.html</link>
<title>title test</title>
<description>Description test description test</description>
<a10:updated>2015-05-26T10:23:53Z</a10:updated>
<enclosure type="" url="http://test.com/test/test.jpg" width="200" height="200"/>
</item>
</channel>
我像这样提取了这个标签(标题测试):
title = ds.Tables["item"].Rows[0]["title"] as string;
如何使用 c# 从 <encosure>
标签中提取 url 属性?
感谢
第一个选项
您可以创建 类 以将 XML 映射和反序列化为对象并作为属性轻松访问。
第二个选项
如果您只对少数几个值感兴趣并且不想创建映射 类 ,您可以使用 XPath,您可以轻松找到许多文章和问题的答案。
要从标记中提取 url 属性,您可以使用路径:
"/channel/item/enclosure/param[@name='url']/@value"
有很多文章可以帮助您阅读 XML,但简单的答案是将您的 XML 加载到 XML 文档中,然后简单地调用
doc.GetElementsByTagName("enclosure")
这将 return 一个包含在您的文档中找到的所有 'enclosure' 标记的 XmlNodeList。我真的建议您阅读一些有关使用 XML 的内容,以确保您的应用程序功能强大且健壮。
您可以使用 LinqToXML,这对您更有用...
请参考代码
string xml = @"<channel>
<title>test + test</title>
<link>http://testprog.test.net/api/test</link>
<description>test.com</description>
<category>test + test</category>
<item xml:base=""http://test.com/test.html?id=25"">
<guid isPermaLink=""false"">25</guid>
<link>http://test.com/link.html</link>
<title>title test</title>
<description>Description test description test</description>
<a10>2015-05-26T10:23:53Z</a10>
<enclosure type="""" url=""http://anupshah.com/test/test.jpg"" width=""200"" height=""200""/>
</item>
</channel>";
var str = XElement.Parse(xml);
var result = (from myConfig in str.Elements("item")
select myConfig.Elements("enclosure").Attributes("url").SingleOrDefault())
.First();
Console.WriteLine(result.ToString());
希望对你有所帮助...
<channel>
<title>test + test</title>
<link>http://testprog.test.net/api/test</link>
<description>test.com</description>
<category>test + test</category>
<item xml:base="http://test.com/test.html?id=25>
<guid isPermaLink="false">25</guid>
<link>http://test.com/link.html</link>
<title>title test</title>
<description>Description test description test</description>
<a10:updated>2015-05-26T10:23:53Z</a10:updated>
<enclosure type="" url="http://test.com/test/test.jpg" width="200" height="200"/>
</item>
</channel>
我像这样提取了这个标签(标题测试):
title = ds.Tables["item"].Rows[0]["title"] as string;
如何使用 c# 从 <encosure>
标签中提取 url 属性?
感谢
第一个选项
您可以创建 类 以将 XML 映射和反序列化为对象并作为属性轻松访问。
第二个选项
如果您只对少数几个值感兴趣并且不想创建映射 类 ,您可以使用 XPath,您可以轻松找到许多文章和问题的答案。
要从标记中提取 url 属性,您可以使用路径:
"/channel/item/enclosure/param[@name='url']/@value"
有很多文章可以帮助您阅读 XML,但简单的答案是将您的 XML 加载到 XML 文档中,然后简单地调用
doc.GetElementsByTagName("enclosure")
这将 return 一个包含在您的文档中找到的所有 'enclosure' 标记的 XmlNodeList。我真的建议您阅读一些有关使用 XML 的内容,以确保您的应用程序功能强大且健壮。
您可以使用 LinqToXML,这对您更有用...
请参考代码
string xml = @"<channel>
<title>test + test</title>
<link>http://testprog.test.net/api/test</link>
<description>test.com</description>
<category>test + test</category>
<item xml:base=""http://test.com/test.html?id=25"">
<guid isPermaLink=""false"">25</guid>
<link>http://test.com/link.html</link>
<title>title test</title>
<description>Description test description test</description>
<a10>2015-05-26T10:23:53Z</a10>
<enclosure type="""" url=""http://anupshah.com/test/test.jpg"" width=""200"" height=""200""/>
</item>
</channel>";
var str = XElement.Parse(xml);
var result = (from myConfig in str.Elements("item")
select myConfig.Elements("enclosure").Attributes("url").SingleOrDefault())
.First();
Console.WriteLine(result.ToString());
希望对你有所帮助...