Я создал [WebMethod]
на веб-сервисе ASP.NET, который читает XML-документы из разных веб-сервисов (службы ASP.NET и PHP).Как добавить дочерние узлы XML-документов в корневой каталог другого (веб-службы)?
После того, как документы будут прочитаны, они будут объединены в XML и возвращены.
Метод может успешно читать XML-документы из каждой веб-службы, но когда я пытаюсь добавить второй XML в первый, я получаю ArgumentException
и сообщение вроде этого The node to be inserted is from a different document context.
Я не могу найти проблему, может это что-то сделать с источником документа? но тогда оба документа точно такие же (имеют одинаковые элементы).
Почему ArgumentException
? Что мне не хватает?
[WebMethod]
public XmlDocument getRestaurants(String search_keywords)
{
XmlDocument xmlDom1 = new XmlDocument();
xmlDom1 = getRestaurantFromAspNetWS(search_keywords);
XmlTextReader myXmlTextReader =
new XmlTextReader
("http://some-iss.green.com/username/search.php?s=" + search_keywords);
XmlDocument xmlDom2 = new XmlDocument();
xmlDom2.Load(myXmlTextReader);
foreach (XmlElement xmlNode in xmlDom2.DocumentElement.ChildNodes)
{
//trying to append childNodes of xmlDom2 into xmlDom1
//and this is where i get ArgumentException
xmlDom1.DocumentElement.AppendChild(xmlNode);
}
return xmlDom1;
}
У вас есть * использовать XmlDocument вместо LINQ to XML? –
Я бы предпочел использовать XmlDocument, но я открыт для изучения новых идей. Не могли бы вы указать, что читать? Вы видите проблему с кодом выше? –
Вы должны посмотреть на 'XmlDocument.ImportNode', но я бы * сильно * призываю вас взглянуть на LINQ to XML. Это * значительно улучшенный XML API. –