Using XmlPyxReader
Luckily, you
already have just such an application. In Chapter 2, I showed you how to write
PoToPickList
, which generates the PO pick list
from an XML file. You can now plug XmlPyxReader
in
to PoToPickList
to generate a pick list from a PYX
document. Example 4-4 shows the Main(
)
method of PoToPickList
again, with the
change highlighted.
public static void Main(string[ ] args) {
string filename = args[0];
TextReader textReader = File.OpenText(filename);
XmlReader reader = new XmlPyxReader(textReader);
StringBuilder pickList = new StringBuilder( );
pickList.Append("Angus Hardware PickList").Append(Environment.NewLine);
pickList.Append("=======================").Append(Environment.NewLine).Append(
Environment.NewLine);
while (reader.Read( )) {
if (reader.NodeType == XmlNodeType.Element) {
switch (reader.LocalName) {
case "po":
pickList.Append(POElementToString(reader));
break;
case "date":
pickList.Append(DateElementToString(reader));
break;
case "address":
reader.MoveToAttribute("type");
if (reader.Value == "shipping") {
pickList.Append(AddressElementToString(reader));
} else {
reader.Skip( );
}
break;
case "items":
pickList.Append(ItemsElementToString(reader));
break;
}
}
}
Console.WriteLine(pickList);
}
If you run the PYX purchase order in Example 4-1
through PoToPicklist
again,
you’ll see exactly the same results you saw in Chapter 2, reproduced here in Example 4-5.
Get .NET & XML now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.