C#操作XML,如何获取指定节点值?

 我来答
Axure夜话
2015-05-02 · 知道合伙人软件行家
Axure夜话
知道合伙人软件行家
采纳数:1197 获赞数:1344
1992年毕业于太原理工大学,20年IT公司工作经验现任山西誉海和科技有限公司技术总监,老二牛车教育课程总监

向TA提问 私信TA
展开全部
C#操作XML 有以下几种方式:
1:使用XmlDocument相关类库和方法操作xml
2:使用XDocument相关类库和方法操作xml
3:使用XmlReader和XmlWriter相关类库和方法操作xml
获得指定节点的值也需要 分为属性和元素
1:使用XmlDocument
XmlDocument doc = new XmlDocument();
doc.Load("Customer2.xml");
// XmlNodeList nodeList = doc.GetElementsByTagName("row");
XmlNodeList nodeList = doc.SelectNodes("/Table/row");
//读取属性+元素
foreach (XmlNode item in nodeList)
{
customerInfo.AppId = item.Attributes["AppID"].Value;
customerInfo.CustomerID = item["CustomerID"].InnerText;
}
2:使用XDocument
XDocument xdoc = XDocument.Load("Customer2.xml");
var custs = from customer in xdoc.Descendants("row")
select new
{//读取属性+元素
Version = customer.Attribute("Version").Value,
CustomerID = customer.Element("CustomerID").Value,
};
3:使用XmlReader
XmlReader reader = XmlReader.Create("Customer2.xml", settings);
//读取属性
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
switch (reader.Name)
{
case "row":
customerInfo = new CustomerInfo();
if (reader.HasAttributes)
{
customerInfo.AppId = reader.GetAttribute("AppID");
customerInfo.Version = reader.GetAttribute("Version");
}
break;
case "CustomerID":
customerInfo.CustomerID = reader.ReadString();
break;
}
}
恶灵退散FM60K
2013-08-23 · 超过69用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:124万
展开全部
你直接用InnerText是不可能达到你的目的的。 对于内含子节点的节点,不应该直接放置文本内容。如果有需要,你可以增加一个特殊的子节点,比如Content。因为按照你这样的,操作不是很保险。 对于你的这个问题,也不是完全不可以解决,只是不安全。 你可以对你的Test节点枚举其所有的直接子节点,你会发现其中有一个子节点就是这个节点的文本内容的节点,具体这个节点的识别我忘记了(呵呵,好久没这样调试过了),你可以调试跟踪下,然后有了个定性后,再确定方法来处理。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式