XML解析单个节点中的多个单词
本文关键字:单词 节点 单个 XML | 更新日期: 2023-09-27 18:16:23
我有一个这样的xml:
<item>
<name>chuck - norris</name>
</item>
我可以从那里得到全名,并将其添加到列表框中:
.......
.......
public class helperclass
{
string helper;
public string Helper
{
get {return helper; }
set {helper = value; }
}
}
.......
.......
//xml comes from internet
void something_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
XElement xml = XElement.Parse(e.Result);
var info = from somexml in xml.Descendants("item")
select new helperclass
{
Helper = (string)somexml.Element("name")
};
listBox1.ItemsSource = info;
.......
但是我如何用换行符替换"-",这样我就可以得到:
查克
诺里斯
代替:
chuck - norris
和如何只得到名字?
无需任何检查:
string[] segments = "Chuck - Norris".Split('-');
string firstName = segments[0].Trim();
string lastName = segments[1].Trim();
使用Linq to XML:
var listOfStringsYouWant = new List<string>();
var doc = XDocument.Load("placeXMLHere");
// finds every node of item
doc.Descendants("item").ToList()
.ForEach(item =>
{
listOfStringsYouWant.Add(item.Element("name").Value.Replace('-', ''r'n'));
});
不确定这是否是您正在寻找的。
String sArray = Helper.Split('-');
foreach (String str in sArray)
Console.Writeline(Str+"'n");
如果您的换行符用于文本框,则需要将其从" - "替换为"'r'n"。
如果是HTML元素,.将" - "替换为"
"
如果你需要将它们分开以便区分它们,使用。split
示例代码:
namespace XMLParser
{
class Program
{
static void Main(string[] args)
{
XElement items = XElement.Load(@"C:'XMLParser'items.xml");
var filteredItems = from item in items.Descendants("item")
select item.Element("name");
foreach (var item in filteredItems)
{
// Replacing " - " with NewLine
Console.WriteLine(item.Value.Replace(" - ",
System.Environment.NewLine));
// Only First name
Console.WriteLine(item.Value.Split().First());
}
}
}
}