仅使用xpath和.NET C#获取元素内容 [英] Get element content using only xpath and .NET C#
问题描述
我找到了很多关于如何通过使用简单的xpath expresion和C#来获取节点内容的文章,例如:
a)xpath
/ bookstore /作者/名字
b)C#
字符串xpathExpression = / bookstore / author / first-name
nodes = navigator.Select(xpathExpression )
我想知道如何获取元素内部的内容,并且相同的元素在另一个元素内,另一个元素和另一个元素内。请看下面的代码:
< Cell
< CellContent
< Para
< ; ParaLine
< String`ABCabcABC abcABC abc ABCABCABC。''>
>
>
>
>
我只想从String元素中提取内容ABCabcABC abcABC abc ABCABCABC。
你知道吗?通过使用Xpath表达式和.NET C#来解决问题?
I''ve found a lot of articles about how to get node content by using simple xpath expresion and C#, for example:
a) xpath
/bookstore/author/first-name
b) C#
string xpathExpression = /bookstore/author/first-name"
nodes = navigator.Select(xpathExpression)
I wonder how to get content that is inside of element, and the same element is inside another element and another and another. Just take a look on code below:
<Cell
<CellContent
<Para
<ParaLine
<String `ABCabcABC abcABC abc ABCABCABC. ''>
>
>
>
>
I only want to extract content ABCabcABC abcABC abc ABCABCABC from String element.
Do you know how to resolve problem by use Xpath expression and .NET C#?
推荐答案
如果您的xml如下所示,那么您可以使用Linq查询它
If your xml is like below then you can query it using Linq
var xml = @"<cell>
<cellcontent>
<para>
<paraline>
<string>ABCabcABC abcABC abc ABCABCABC</string></paraline></para></cellcontent></cell>";
var list = XDocument.Parse(xml).Descendants("ParaLine")
.Select(x => x.Element("string").Value).ToList();
list对象将包含string元素的所有值,该元素位于 ParaLine
元素内。
问题是文件看起来不像一个简单的XML。
我的意思是
< NameElement1>
< NameElement2>
abababababababa。
< / NameElement1>
< / NameElement2>
一个元素包括另一个元素,这里:
< NameElement1< NameElement2< NameElement3 abababababababa>>>
如此简单的XPath语法不起作用/ Cell / CellContent / Para / ParaLine / String / text();。
我问其他解决方案然后简单的xpath expresion。有什么想法?
Problem is that file doesnt look like a simple xml.
I mean
<NameElement1>
<NameElement2>
abababababababa.
</NameElement1>
</NameElement2>
One element include another element, here:
<NameElement1<NameElement2 <NameElement3 abababababababa >>>
So simple XPath syntax doesn''t work "/Cell/CellContent/Para/ParaLine/String/text()";.
I ask about sth other solution then simple xpath expresion. Any ideas?
这篇关于仅使用xpath和.NET C#获取元素内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!