我陷入了一些 LINQ to XML 代码 (
我陷入了一些 LINQ to XML 代码的困境。在 for 循环中调用一个方法,该方法成功返回
标记的内容,该标记包含来自具有 4000+ 个 kml 文件的正确
id
的总数。我说成功了,但有一点需要注意。
标记包含
,.net 将其转换为 .无论如何,我无法弄清楚如何对其进行解析,以便保留所有字符(>
)。以下是相关的 C# 代码:
…in main class
public partial class ResultsGeneral : BasePage {
public List<string> rightVenues = new List<string>();
XNamespace spc = "http://www.opengis.net/kml/2.2";
XDocument Placemarks = XDocument.Load(HttpContext.Current.Server.MapPath("~/venuesCompleteGood.kml"));
…in protected void Page_Load(object sender, EventArgs e) {
for (int q = 0; q <= rightVenues.Count; q++) {
getInfo(rightVenues[q]); //get info contains a list of placemark ids
};
…
public void getInfo(string ids) {
var aPlacemark =
from plMark in Placemarks.Descendants(spc + "Placemark")
where plMark.Attribute("id").Value.Equals(ids.ToString())
select plMark;
foreach (XElement plMark in aPlacemark) {
quKML.Text = quKML.Text + "<br>" +
plMark.ToString(SaveOptions.DisableFormatting);
}
}
…kml 的片段:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark id="33">
<name>
Madison Square Garden
</name>
<description>
<![CDATA[<br>
4 Penn Plaza<br>
<br>
New York<br>
NY<br>
10001<br>
United States of America ]]>
</description>
<Point>
<coordinates>
-73.99337100000002,40.750354
</coordinates>
</Point>
</Placemark>
…返回的部分内容:
<placemark id="33" xmlns="http://www.opengis.net/kml/2.2"><name>
Madison Square Garden
</name><description><!--[CDATA[<br-->
4 Penn Plaza<br>
<br>
New York<br>
NY<br>
10001<br>
United States of America ]]></description><point><coordinates>
-73.99337100000002,40.750354
</coordinates></point></placemark>
注意 ]]>
仅次于美国。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web
技术交流群。
我陷入了一些 LINQ to XML 代码的困境。在 for 循环中调用一个方法,该方法成功返回
标记的内容,该标记包含来自具有 4000+ 个 kml 文件的正确
id
的总数。我说成功了,但有一点需要注意。
标记包含 ,.net 将其转换为
.无论如何,我无法弄清楚如何对其进行解析,以便保留所有字符(
>
)。以下是相关的 C# 代码:
…in main class
public partial class ResultsGeneral : BasePage {
public List<string> rightVenues = new List<string>();
XNamespace spc = "http://www.opengis.net/kml/2.2";
XDocument Placemarks = XDocument.Load(HttpContext.Current.Server.MapPath("~/venuesCompleteGood.kml"));
…in protected void Page_Load(object sender, EventArgs e) {
for (int q = 0; q <= rightVenues.Count; q++) {
getInfo(rightVenues[q]); //get info contains a list of placemark ids
};
…
public void getInfo(string ids) {
var aPlacemark =
from plMark in Placemarks.Descendants(spc + "Placemark")
where plMark.Attribute("id").Value.Equals(ids.ToString())
select plMark;
foreach (XElement plMark in aPlacemark) {
quKML.Text = quKML.Text + "<br>" +
plMark.ToString(SaveOptions.DisableFormatting);
}
}
…kml 的片段:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark id="33">
<name>
Madison Square Garden
</name>
<description>
<![CDATA[<br>
4 Penn Plaza<br>
<br>
New York<br>
NY<br>
10001<br>
United States of America ]]>
</description>
<Point>
<coordinates>
-73.99337100000002,40.750354
</coordinates>
</Point>
</Placemark>
…返回的部分内容:
<placemark id="33" xmlns="http://www.opengis.net/kml/2.2"><name>
Madison Square Garden
</name><description><!--[CDATA[<br-->
4 Penn Plaza<br>
<br>
New York<br>
NY<br>
10001<br>
United States of America ]]></description><point><coordinates>
-73.99337100000002,40.750354
</coordinates></point></placemark>
注意 ]]>
仅次于美国。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当我运行你的 getInfo 方法时,看起来 plMark.ToString(...) 返回正确的文本,所以我将调查 quKML,我可能会丢失一些东西,但我看不到这是什么数据类型?
此外,如果 quKML 应该是基于 XML 的,我会考虑将您的
更改为自闭标记
。希望这有帮助。
When I run your getInfo method, it looks like plMark.ToString(...) is returning the right text, so I would be investigating quKML, I might be missing something, but I can't see what data type this is?
In addition, if quKML is supposed to be XML based, I'd think about altering your
<br>
to a self closing tag<br/>
.Hope this helps.