Answer the question
In order to leave comments, you need to log in
How to write to xml file?
We have an unloading from 1s in the commerceml (xml) format. In fact, the characteristics of the goods were filled in "anyhow" and the hour has struck when they became necessary, but there is no longer an opportunity to write them down properly.
There is only an option to write them line by line in the <Description> element.
e.g.
Diameter=100mm
Length=
120mm
<Товар>
<Ид>001bfc8d17d7</Ид>
<Наименование>Название товара</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="">шт</БазоваяЕдиница>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Полное наименование</Наименование>
<Значение>Здесь полное название товара</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
<СтавкиНалогов>
<СтавкаНалога>
<Наименование>НДС</Наименование>
<Ставка>18</Ставка>
</СтавкаНалога>
</СтавкиНалогов>
<Группы>
<Ид>001bfc8d17d7</Ид>
</Группы>
<Описание>Диаметр=100мм
Длина=120мм
</Описание>
</Товар>
<Товар>
<Ид>001bfc8d17d7</Ид>
<Наименование>Название товара</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="">шт</БазоваяЕдиница>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Полное наименование</Наименование>
<Значение>Здесь полное название товара</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
<СтавкиНалогов>
<СтавкаНалога>
<Наименование>НДС</Наименование>
<Ставка>18</Ставка>
</СтавкаНалога>
</СтавкиНалогов>
<Группы>
<Ид>001bfc8d17d7</Ид>
</Группы>
<ХарактеристикиТовара>
<ХарактеристикаТовара>
<Наименование>Диаметр</Наименование>
<Значение>100мм</Значение>
</ХарактеристикаТовара>
<ХарактеристикаТовара>
<Наименование>Длина</Наименование>
<Значение>120мм</Значение>
</ХарактеристикаТовара>
</ХарактеристикиТовара>
</Товар>
$reader = new XMLReader();
$reader->open($file);
while ($reader->read()) {
switch ($reader->nodeType) {
case (XMLREADER::ELEMENT):
if ($reader->localName == "Описание") {
$reader->read();
$rparams = explode("\n", $reader->value);
$newitem = "<ХарактеристикиТовара>\n";
foreach ($rparams as $rparam) {
$pieces = explode("=", $rparam);
$newitem .= "<ХарактеристикаТовара>\n";
$newitem .= "<Наименование>".$pieces[0]."</Наименование>\n";
$newitem .= "<Значение>".$pieces[1]."</Значение>\n";
$newitem .= "</ХарактеристикаТовара>\n";
}
$newitem .= "</ХарактеристикиТовара>\n";
echo $newitem;
}
}
}
$file ='import.xml';
$reader = new XMLReader();
$reader->open($file);
while ($reader->read()) {
switch ($reader->nodeType) {
case (XMLREADER::ELEMENT):
if ($reader->localName == "Описание") {
$reader->read();
$rparams = explode("\n", $reader->value);
$newitem = "<ХарактеристикиТовара>\n";
foreach ($rparams as $rparam) {
$pieces = explode("=", $rparam);
$newitem .= "<ХарактеристикаТовара>\n";
$newitem .= "<Наименование>".$pieces[0]."</Наименование>\n";
$newitem .= "<Значение>".$pieces[1]."</Значение>\n";
$newitem .= "</ХарактеристикаТовара>\n";
}
$newitem .= "</ХарактеристикиТовара>\n";
$newitems[] = $newitem;
}
}
}
$fn = file_get_contents($file);
preg_match_all('~<Описание>(.*?)</Описание>~s', $fn, $matches);
file_put_contents($file,str_replace ($matches[0], $newitems, $fn));
Answer the question
In order to leave comments, you need to log in
sum = sum / (n / 2);
You have sum an integer, as a result of division it can turn out to be a fraction, perhaps this is the problem.
UPD:
for(int j=0;j<n-1;j++)
{
for(int k=j+1;k<n;j++)
{
if (((int)(mas[j]) + mas[k]) == sum)
Console.WriteLine((j+1)+" "+(k+1));
}
}
for(int k=j+1;k<n;j++)
for(int k=j+1;k<n;k++)
This: for(int k=j+1;k<n;j++)
Ps The problem is solved differently. We sort, then we give out the first with the last, the second with the penultimate ...
I'll add to my question.
With the help of what this can be done, I imagine, but some kind of terrible dumb thing has fallen that I can’t understand, for example, how can I make a replacement in the current Description element.
That is, you can, of course, take simplexmlelement.addchild
,
but here I run into the fact that I don’t understand how to tell the created child which parent it needs to get into.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question