Ctrl_Alt_Defeat
Ctrl_Alt_Defeat

Reputation: 4009

Read in an XML Block

I am developing a webservice - I have cretaed a TestWebserive to pass across the data I want. Basically it will read in an XML file, use an XSL to transform it and then pass it on.

So the XML I am reading in is as follows:

                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value1</utcc:AttributeName>
                                    <utcc:AttributeValue>1</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value2</utcc:AttributeName>
                                    <utcc:AttributeValue>2</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value3</utcc:AttributeName>
                                    <utcc:AttributeValue>3</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value4</utcc:AttributeName>
                                    <utcc:AttributeValue>4</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value5</utcc:AttributeName>
                                    <utcc:AttributeValue>5</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value6</utcc:AttributeName>
                                    <utcc:AttributeValue>6</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value7</utcc:AttributeName>
                                    <utcc:AttributeValue>7</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value8</utcc:AttributeName>
                                    <utcc:AttributeValue>8</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>
                                <utcc:OrderItemAttribute>
                                    <utcc:AttributeName>Value9</utcc:AttributeName>
                                    <utcc:AttributeValue>9</utcc:AttributeValue>
                                </utcc:OrderItemAttribute>

So I then have an OrderInput class and within it the following code:

private OrderItemAttribute[] orderItemAttribute;

[XmlElement("OrderItemAttribute")]
        public OrderItemAttribute[] OrderItemAttribute
        {
            get { return orderItemAttribute; }
            set { orderItemAttribute = value; }
        }

and then another class - OrderItemAttribute which has the following:

    private string attributeName;
    private string attributeValue;

    [XmlElement("AttributeName")]
    public string AttributeName
    {
        get { return attributeName; }
        set { attributeName = value; }
    }

    [XmlElement("AttributeValue")]
    public string AttributeValue
    {
        get { return attributeValue; }
        set { attributeValue = value; }
    }

Now within my Test Webservice I have the following to pass in test values:

 orderInput.OrderItemAttribute[0].AttributeName = "Value1TestName";
 orderInput.OrderItemAttribute[0].AttributeValue = "Value1TestValue";

I am wondering instead of doing this for all [1] [2], etc is there a way I can do a foreach loop on this and read in all the values?

Thanks.

Upvotes: 1

Views: 189

Answers (1)

Arion
Arion

Reputation: 31249

Becuase OrderItemAttribute is a array if think you should be able to something like this:

foreach(var order in orderInput.OrderItemAttribute)
    {
        order.AttributeName="Value1TestName";
        order.AttributeValue="Value1TestValue";
    }

Upvotes: 1

Related Questions