【发布时间】:2020-11-16 22:13:48
【问题描述】:
我有许多需要解析的 xml 文件。 xml 文件是从其他地方加载的。我可以检查这些文件以获取提取所需数据所需的路径。路径不一样。 所以我在一个ini文件中为每个xml文件添加了路径。这适用于 6 个文件中的 5 个。
WebClient client = new WebClient();
data = client.DownloadData("ftp://some.site/my.xml");
MemoryStream stream = new MemoryStream(data);
XmlDocument xml_doc = new XmlDocument();
xml_doc.Load(stream);
var prod_ids = xml_doc.DocumentElement.SelectNodes("/Catalog/Products/Product/Product_Id/text()");
foreach (XmlNode node in prod_ids) {
[...]
}
在最后一个文件中,我需要一次从一个子树中获取 2 个信息,因为我必须将它们组合成一个字符串,因此单独读取所有节点是行不通的。请参阅示例-XML:
<Catalog>
<Created><![CDATA[2020-11-16T00:22:11+01:00]]></Created>
<Products>
<Product>
<Product_Id><![CDATA[ABC]]></Product_Id>
<Color_Code><![CDATA[123]]></Color_Code>
<Size><![CDATA[]]></Size>
<Length>210</Length>
<Width>0</Width>
</Product>
<Product>
<Product_Id><![CDATA[ABC]]></Product_Id>
<Color_Code><![CDATA[456]]></Color_Code>
<Size><![CDATA[]]></Size>
<Length>44</Length>
<Width>55</Width>
</Product>
<Product>
<Product_Id><![CDATA[XYZ]]></Product_Id>
<Color_Code><![CDATA[123]]></Color_Code>
<Size><![CDATA[]]></Size>
<Length>150</Length>
<Width>11</Width>
</Product>
</Products>
</Catalog>
我正在寻找一些代码来解析每个子树(/Catalog/Products/Product),我可以在其中从 Product_Id 和 Color_Code 读取 innerText 以将它们组合成一个字符串。 有什么想法吗?
【问题讨论】: