在.NET中,如何從中讀取文本內容?從XElement中讀取文本內容
例如,從的XElement
XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>")
我想字符串 '愛麗絲&鮑勃'
我想element.Value
但回報 '愛麗絲&山貓' :(
在.NET中,如何從中讀取文本內容?從XElement中讀取文本內容
例如,從的XElement
XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>")
我想字符串 '愛麗絲&鮑勃'
我想element.Value
但回報 '愛麗絲&山貓' :(
XElement t = XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>");
string s = (t.FirstNode as XText).Value;
使用element.FirstNode
您可以獲取元素內的原始內容,「Alice & Bob「,所以你只需要」忽略「和號就可以得到你期待的結果。
嘗試下面的代碼它可以幫助你..
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
var parent = XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>");
var nodes = from x in parent.Nodes()
where x.NodeType == XmlNodeType.Text
select (XText)x;
foreach (var val in nodes)
{
Console.WriteLine(val.Value);
}
Console.ReadLine();
}
}
}
XElement t= XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>");
string s = t.FirstNode.ToString();
只是因爲我最近也有類似的規定,我提供了:
var x = XElement.Parse("<tag>Alice & Bob<other>cat</other></tag>")
var text = string.Concat(x.Nodes().OfType<XText>().Select(t => t.Value));
會不會捕獲子節點的文本內容,但會連接當前元素中所有未加標籤的文本節點。
這是最靈活的\通用的,因此有用的答案。 – mutex
這但沒有concat是偉大的。 concat只會合併字符串並使結果不明確。 – user420667
我很確定這是XML格式不正確,這就是爲什麼你有問題。標籤應該包含一個值或其他標籤,而不是兩個。 – Bobson
'
對於流行的XML語言完全正常HTML
' –實際上,HTML不是XML,反之亦然。當然,它們是相關的,但只有XHTML纔是。 http://en.wikipedia.org/wiki/XHTML。如果你打算解析HTML,你應該使用HTML解析器。如果你正在解析XML,我仍然認爲這是非常糟糕的。 – Bobson