仅使用xpath和.NET C#获取元素内容 [英] Get element content using only xpath and .NET C#

查看:83
本文介绍了仅使用xpath和.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆