【发布时间】:2019-10-17 23:48:58
【问题描述】:
我想从一个 XML 文件中获取子节点,但是有主节点,所以每个产品都有两个子节点。
我可以写入文件 --> “产品名称”,“信息”,但我需要写入;
--> Test1,test1 info,variation1 条码
--> Test1,test1 info,variation2 条码
--> Test2,test2 info,variation1 条码
--> Test2,test2 info,variation2 条码
我该怎么做?请帮我。
我的 XML 文件:
-<Product>
-<ProductName>
test1
</ProductName>
-<Shortinfo>
asd
</Shortinfo>
-<info>
asdasdasdasdasdasdasdasdasdasdasd
</info>
-<ProductOption>
-<Option>
<variationID>1</variationID>
<Barcode>71079901877542</Barcode>
</Option>
-<Option>
<variationID>2</variationID>
<Barcode>71079901877542</Barcode>
</Option>
-</ProductOption>
-</Product>
-<Product>
-<ProductName>
test2
</ProductName>
-<Shortinfo>
asd
</Shortinfo>
-<info>
asdasdasdasdasdasdasdasdasdasdasd
</info>
-<ProductOption>
-<Option>
<variationID>1</variationID>
<Barcode>71079901877542</Barcode>
</Option>
-<Option>
<variationID>2</variationID>
<Barcode>71079901877542</Barcode>
</Option>
-</ProductOption>
-</Product>
C#
private static string EditText(XDocument xDocument)
{
var stbu = new StringBuilder();
foreach (var result in xDocument.Descendants("Product").Select(x => new
{
title = (string)x.Element("productName"),
shortinfo = (string)x.Element("shortinfo"),
info = (string)x.Element("info"),
barkod=(string)x.Element("ProductOption").Element("Option").Element("Barcode")
}))
{
stbu.AppendLine($"{result.barcode},{result.title},{result.shortinfo},{result.info}");
};
return stbu.ToString();
}
'option' 子节点 'product' 和 'barcode' 子节点 'option'
【问题讨论】:
-
有一个 XML Reader 和一个 XML Writer 类。它们对您不可用还是有一些问题?
-
我可以得到主节点,但我不能得到子节点。我无法访问“变体”标签。变体标签是子节点的子节点。
标签: c# xml-parsing