Читать в блоке XML - PullRequest
       15

Читать в блоке XML

1 голос
/ 03 апреля 2012

Я разрабатываю веб-сервис - я создал TestWebserive для передачи нужных мне данных.По сути, он будет читать в XML-файле, использовать XSL для его преобразования и затем передавать его.

Итак, XML, который я читаю, выглядит следующим образом:

                                <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>

Итак, яиметь класс OrderInput и внутри него следующий код:

private OrderItemAttribute[] orderItemAttribute;

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

, а затем другой класс - OrderItemAttribute, который имеет следующее:

    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; }
    }

Теперь в моем тестовом веб-сервисе у меня есть следующее дляпройти тестовые значения:

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

Мне интересно, вместо того, чтобы делать это для всех [1] [2] и т. д., есть ли способ сделать цикл foreach для этого и прочитать все значения?

Спасибо.

1 Ответ

1 голос
/ 03 апреля 2012

Becuase OrderItemAttribute - это массив, если вы считаете, что вы должны иметь возможность что-то вроде этого:

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