如何使用Xpath从xml获取数据

时间:2018-02-01 15:06:36

标签: xml xslt xpath xpath-2.0

我有一个xml字段,如下所示

"1. Some text" XT>

我想要像

这样的结果
/c_text/text()

如何使用xpath这个

我使用了var temp = new List<TEntity>(); using (var reader = await cmd.ExecuteReaderAsync()) { while(await reader.ReadAsync()) { temp.add(CreateEntity(reader)) ; } } return temp; // this is tightly coupled to object. Generic methods can be made // to convert reader to object public TEntity CreateEntity(SqlDataReader reader) => new TEntity() { Id = reader.GetInt32("id"), Col1 = reader.GetString("col1"), Col2 = reader.GetString("col2"), Col3 = reader.GetString("col3") }; ,但我得到了部分结果,即&#34;。一些文字&#34; 标签内的数据丢失。 有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

/c_text/text()选择c_text的文本节点子节点。您应该利用节点string-value ...

的概念,而不是text()

对于这个XML,纠正为格式良好并消除了可能错误使用字符串引用,

<c_text><b>1</b>. Some text</c_text>

这个XPath,

string(/c_text)

将选择c_text

的字符串值
 1. Some text

按要求。

答案 1 :(得分:0)

你可以像这样使用:

<xsl:template match="c_text">
<xsl:value-of select="."/>
</xsl:template>