我已经看到了有关此问题的各种问题,但似乎没有一个能解决我的问题。我建立了Umbraco网站,并将其网页内容作为XML存储在数据库列中。一个例子一个是下面:从数据库列中的字符串中提取XML值
很抱歉的屏幕抓取,而不是实际的代码,但是编辑保持剥离的事情了。
我最想做的是在c#/ Linq的页面上(一直试图操纵的是来自字符串值)还是在SQL查询中。能够拉出'url-name','nodeName'和'bodyText'字段。
非常感谢
我已经看到了有关此问题的各种问题,但似乎没有一个能解决我的问题。我建立了Umbraco网站,并将其网页内容作为XML存储在数据库列中。一个例子一个是下面:从数据库列中的字符串中提取XML值
很抱歉的屏幕抓取,而不是实际的代码,但是编辑保持剥离的事情了。
我最想做的是在c#/ Linq的页面上(一直试图操纵的是来自字符串值)还是在SQL查询中。能够拉出'url-name','nodeName'和'bodyText'字段。
非常感谢
由于在数据库中的列没有被定义为XML,你可以拉出来的串并分析文本/字符串作为XML文档:
// xml would be pulled from the DB
string xml = "<RunwayTextpage nodeName=\"Test page\" urlName=\"test-page\"><bodyText>Body Text</bodyText></RunwayTextpage>";
var doc = XDocument.Parse(xml);
string nodeName = doc.Root.Attribute("nodeName").Value;
string urlName = doc.Root.Attribute("urlName").Value;
string bodyText = doc.Root.Element("bodyText").Value;
另一种选择是在SQL查询本身中使用字符串操作,但最终会导致维护性下降,而上述内容很容易理解。
感谢您的回复。我不确定这会如何帮助?正如你已经硬编码了XML的一个版本,并且我正在试图用上面显示的内容格式动态地执行此操作。 – Adamsk1
XML不是硬编码的;这只是一个例子。将'xml'变量中的字符串替换为数据库中的字符串。 –
为什么不使用uQuery?不知道你的目的,但它有一个名为GetNodesByXPath的方法,通过查询内存xml缓存从XPath表达式获取节点或节点的集合。
如果你的树很大,在性能方面更明智。
我会看看这个,谢谢。 – Adamsk1
我不认为有任何方法可以将其更改为xml列吗? – Liath
感谢您的回复。我恐怕不是。 – Adamsk1