簡體   English   中英

如何從XML獲取價值?

[英]How to get the value from XML?

我正在制作一個小工具來檢查XML文件中的材料編號。

我知道這對你的專家來說很容易,我想請你幫忙解決這個問題。 在我的機器上,我想有.NET 2.0框架,並安裝了VS C#Express 2005。

我有一個包含材料數據的XML。 它位於我當地的車道。 我現在能夠瀏覽XML文件並將文件保存在字符串變量中。 嗯,這就是我到目前為止所做的......

if(folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
    string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "Product.xml");

    string prodFile = files[0];
    ...
    ...

假設這是XML的結構:

<Record>
    <Product>
        <Material_Number>20209485</Material_Number> 
        <Product_Type>Type1</Product_Type>
        ...
        ...
    </Product>
</Record>

如何獲得物料編號值?

您可以使用XmlDocument類將XML文件加載到DOM中。

MSDN - 此類實現W3C文檔對象模型(DOM)1級核心和核心DOM級別2. DOM是XML文檔的內存(緩存)樹表示,可以導航和編輯此文檔。 因為XmlDocument實現了IXPathNavigable接口,所以它也可以用作XslTransform類的源文檔。

樣品

有很多方法可以讀懂你的價值。 我真的很鼓勵你閱讀使用Xml DOM

XmlNodeList list = xml.GetElementsByTagName("Product");
XmlAttributeCollection attr = list[0].Attributes;
string materialNumber = list[0].ChildNodes[0].InnerText;

要么

XmlNodeList list  = xml.GetElementsByTagName("Material_Number"); 
string materialNumber = list[0].InnerText;

更多信息

你也可以使用XPathNavigatorXPathExpressionXmlDocument

var xmlDoc = new XmlDocument();
xmlDoc.Load("Product.xml") //or xmlDoc.LoadXml(xmlString);
var xmlNav = xmlDoc.CreateNavigator();
string materialNum;
var iterator = xmlNav.Select("/Record/Product/Material_Number");
if (iterator.MoveNext() && iterator.Current != null)
    materialNum = iterator.Current.Value;

如果您使用.Net 3.0+,則可以使用System.Xml.Linq.XDocument

var xdoc = XDocument.Load("Product.xml"); //or var xdoc = XDocument.Parse(xmlString);
var materialNum = xdoc.Root.Element("Product").Element("Material_Number").Value;

我找到了解決方案。 雖然不那么優雅......

XmlDocument xmlDoc= new XmlDocument(); 
xmlDoc.Load(@"C:\Product.xml");                 

XmlNodeList a = xmlDoc.GetElementsByTagName("Material_Number"); 
string materialNumber = a[0].InnerText;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM